Maison >développement back-end >Tutoriel Python >Comment puis-je remplacer efficacement des lignes dans un fichier texte à l'aide de Python ?
Pour remplacer des lignes spécifiques dans un fichier texte en Python, envisagez l'utilisation du module fileinput. Cette méthode évite de charger l'intégralité du fichier en mémoire, ce qui la rend efficace pour les fichiers volumineux.
import fileinput with fileinput.input("test.txt", inplace=True) as f: for line in f: if "foo" in line: print(line.replace("foo", "bar"), end='')
Avec ce code, le fichier d'origine est renommé en sauvegarde, et la norme la sortie est redirigée pour écrire dans le fichier d'origine dans la boucle. Toutes les instructions d'impression à l'intérieur de la boucle modifient directement le contenu du fichier.
Pour plus de lisibilité, considérez ces options explicites :
Option 1 (pour les petits fichiers ):
with open("test.txt", "r") as f: lines = f.readlines() with open("test.txt", "w") as f: for line in lines: if "foo" in line: f.write(line.replace("foo", "bar")) else: f.write(line)
Option 2 (pour les grands Fichiers) :
import tempfile with open("test.txt") as original, tempfile.NamedTemporaryFile(delete=False) as temp: for line in original: if "foo" in line: temp.write(line.replace("foo", "bar").encode()) else: temp.write(line.encode()) temp.flush() os.replace(temp.name, "test.txt")
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!