Je souhaite effectuer un filtrage de base sur un fichier. Lisez-le, faites le traitement, écrivez-le.Ouvrir un fichier, le lire, le traiter et le réécrire - la méthode la plus courte en Python
Je ne cherche pas le "golf", mais je veux la méthode la plus simple et la plus élégante pour y parvenir. Je suis venu avec:
from __future__ import with_statement
filename = "..." # or sys.argv...
with open(filename) as f:
new_txt = # ...some translation of f.read()
open(filename, 'w').write(new_txt)
La déclaration with
rend les choses plus courtes que je n'ai pas explicitement ouvrir et fermer le fichier.
D'autres idées?
Très gentil, merci de pointer cette option. Vous pouvez également utiliser la fonction filelineno() de fileinput pour avoir automatiquement le numéro de ligne, sans le compter vous-même. –
Oh, et vous avez oublié la virgule après l'impression - le code ajoute des sauts de ligne supplémentaires :-) –
Merci d'avoir attrapé cela - J'ai changé l'exemple. – Hortitude