Maison > développement back-end > Tutoriel Python > Comment puis-je rechercher et remplacer efficacement du texte dans un fichier Python ?

Comment puis-je rechercher et remplacer efficacement du texte dans un fichier Python ?

Mary-Kate Olsen
Libérer: 2024-12-13 02:05:13
original
255 Les gens l'ont consulté

How Can I Efficiently Search and Replace Text in a Python File?

Rechercher et remplacer du texte

La recherche et le remplacement de texte dans un fichier sont une tâche courante en programmation. Python propose plusieurs façons d'y parvenir en utilisant des bibliothèques telles que os, sys et fileinput.

Tentative originale

Une approche courante consiste à utiliser une boucle pour parcourir la ligne du fichier. par ligne, en vérifiant le texte recherché et en le remplaçant par le texte de remplacement. Voici un exemple :

import os
import sys
import fileinput

print("Text to search for:")
textToSearch = input("> ")

print("Text to replace it with:")
textToReplace = input("> ")

print("File to perform Search-Replace on:")
fileToSearch = input("> ")

tempFile = open(fileToSearch, 'r+')

for line in fileinput.input(fileToSearch):
    if textToSearch in line:
        print('Match Found')
    else:
        print('Match Not Found!!')
    tempFile.write(line.replace(textToSearch, textToReplace))
tempFile.close()

input('\n\n Press Enter to exit...')
Copier après la connexion

Problèmes liés au remplacement sur place

Cette approche fonctionne bien pour les remplacements simples. Cependant, lorsque le texte de remplacement est plus long ou plus court que le texte original, des problèmes peuvent survenir. Par exemple, lors du remplacement de « abcd » par « ram », des caractères supplémentaires restent à la fin (« salut, c'est ram, salut, c'est ram »).

Solution : lire, modifier, écrire

Pour éviter ces problèmes, il est recommandé de lire l'intégralité du fichier en mémoire, de le modifier, puis de le réécrire dans le fichier dans une étape distincte. Cette approche garantit que la structure du fichier reste intacte :

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

# Replace the target string
filedata = filedata.replace('abcd', 'ram')

# Write the file out again
with open('file.txt', 'w') as file:
  file.write(filedata)
Copier après la connexion

Cette méthode est plus efficace pour les fichiers volumineux et évite la perte de données en cas d'interruption pendant le processus d'écriture.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal