recherche
Maisondéveloppement back-endTutoriel PythonComment la recherche et le remplacement de Python peuvent-ils gérer des longueurs de texte variables dans l'édition de fichiers ?

How Can Python's Search-and-Replace Handle Variable Text Lengths in File Editing?

Recherche et remplacement de fichiers Python avec différentes longueurs de texte

En essayant d'utiliser Python 3 pour effectuer une recherche et un remplacement dans un fichier, certains utilisateurs rencontrer des problèmes lorsque le texte de remplacement est plus court ou plus long que le texte d’origine. Cela peut entraîner l'ajout involontaire de caractères au fichier.

Considérez le code fourni :

# Get user input for search and replacement text
textToSearch, textToReplace, fileToSearch = input("Text to search for: "), input("Text to replace it with: "), input("File to perform Search-Replace on: ")

# Open the file and loop through each line
with open(fileToSearch, 'r+') as tempFile:
    for line in fileinput.input(fileToSearch):
        # Perform replacement only when a match is found
        if textToSearch in line:
            line = line.replace(textToSearch, textToReplace)
        # Write the modified line back to the file
        tempFile.write(line)

Cette approche échoue cependant lors du remplacement d'un texte plus long par un texte plus court, car les caractères restants du texte original sont laissés pour compte.

Solution :

Pour résoudre ce problème, il est Il est recommandé de lire l'intégralité du fichier en mémoire, d'effectuer les opérations de recherche et de remplacement, puis de réécrire le contenu modifié dans le fichier dans une étape distincte :

# Read the file into memory
with open('file.txt', 'r') as file:
    filedata = file.read()

# Perform the replacement
filedata = filedata.replace('abcd', 'ram')

# Write the modified content back to the file
with open('file.txt', 'w') as file:
    file.write(filedata)

Cette méthode garantit que le fichier est modifié sur place sans introduire de caractères involontaires.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Approche hybride de Python: compilation et interprétation combinéesApproche hybride de Python: compilation et interprétation combinéesMay 08, 2025 am 12:16 AM

Pythonusesahybridapproach, combinantcompilationToByteDodeAnd Intrepretation.1) CodeSompiledToplatForment-indépendantBytecode.2) ByteCodeisInterpretedByThepyThonVirtualmachine, améliorant la performance et la portabilité.

Apprenez les différences entre les 'pour' de PythonApprenez les différences entre les 'pour' de PythonMay 08, 2025 am 12:11 AM

Thekeydifferencesbetweenpython "pour" et "tandis que" Loopsare: 1) "pour" LoopsareIdEalForitatriant sur les séquences ouvraires, tandis que 2) "tandis que" LoopsarebetterforcontinUnUntilaconditionMetStwithoutPredefinedIberations.un.un

Python concaténate répertorie avec des doublonsPython concaténate répertorie avec des doublonsMay 08, 2025 am 12:09 AM

Dans Python, vous pouvez connecter des listes et gérer des éléments en double via une variété de méthodes: 1) Utiliser les opérateurs ou prolonger () pour conserver tous les éléments en double; 2) Convertissez en ensembles puis revenez aux listes pour supprimer tous les éléments en double, mais l'ordre d'origine sera perdu; 3) Utilisez des boucles ou des compréhensions de liste pour combiner des ensembles pour supprimer les éléments en double et maintenir l'ordre d'origine.

Python Liste de la liste des performances de concaténation: comparaison de la vitessePython Liste de la liste des performances de concaténation: comparaison de la vitesseMay 08, 2025 am 12:09 AM

ThefastestmethodforlistCaténationInpyThonDePendSonListSize: 1) forsmalllists, the opératorisefficient.2) Forlargerlists, list.extend () orlistcomprehensionsisfaster, witextend () étant lamememory-efficientBymoditifyListListsin-Lace.

Comment insérer des éléments dans une liste de python?Comment insérer des éléments dans une liste de python?May 08, 2025 am 12:07 AM

ToinsertElementsIntoapyThonList, useAppend () toaddtotheend, insert () foraspecificPosition, andExtend () forulTipleElements.1) useAppend () foraddingsingleitemStotheend.2) useinsert () toaddataspecificIndex, wila'slowerLlowerLarleLis

Les listes Python sont-elles des tableaux dynamiques ou des listes liées sous le capot?Les listes Python sont-elles des tableaux dynamiques ou des listes liées sous le capot?May 07, 2025 am 12:16 AM

Pythonlistsareimpoledasdynamicarrays, notLinkedlists.1) ils sont les plus utiles.

Comment supprimer les éléments d'une liste Python?Comment supprimer les éléments d'une liste Python?May 07, 2025 am 12:15 AM

PythonoffersfourmainMethodstoreMoElelementsfromalist: 1) retirez (valeur) supprimer la perception de la réavance, 2) la pop (index) supprimera-theredraturnsanelementAsaspecifiedIndex, 3) DelstatementRemoveselementsbyIndexor

Que devez-vous vérifier si vous obtenez une erreur 'Autorisation refusée' lorsque vous essayez d'exécuter un script?Que devez-vous vérifier si vous obtenez une erreur 'Autorisation refusée' lorsque vous essayez d'exécuter un script?May 07, 2025 am 12:12 AM

Toresolvea "Permissiondened" Erreur lorsqu'il a fait la recherche de suivi de suivi: 1) CheckAndAdAdAstheScript'sperMissionsusingChmod xmyscript.shtomakeitexecuable.2) s'assureraScriptisloatedInaDirectorywherewheyouHavewritePerMissions, telasyourhomedirectory.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft