Modifier des lignes dans un fichier sur place
Est-il possible d'analyser efficacement un fichier ligne par ligne et de modifier des lignes spécifiques sans créer de fichier copie ou fichier temporaire ?
Réponse :
Oui, c'est Il est possible de simuler l'édition sur place à l'aide d'un fichier de sauvegarde. Le module fileinput fournit les fonctionnalités nécessaires pour cela.
Exemple :
Considérons un script qui supprime les lignes ne répondant pas à une certaine condition des fichiers fournis comme arguments de ligne de commande ou stdin :
import fileinput for line in fileinput.input(inplace=True, backup='.bak'): if some_condition(line): print(line) # The modified line is output to the current file
Utilisation :
Pour supprimer des lignes ne satisfaisant pas some_condition de first_file.txt et second_file.txt, exécutez la commande suivante :
python grep_some_condition.py first_file.txt second_file.txt
Une fois terminé, first_file.txt et second_file.txt ne contiendront que les lignes qui répondent au prédicat some_condition().
Cette approche garantit une modification efficace sur place en créant un fichier de sauvegarde .bak pendant le processus d'édition, préservant ainsi le fichier d'origine si des erreurs se produisent.
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!