[python] modifier un fichier texte

Bonjour

J’ai un fichier Fpref sous la forme

[quote]largeur=300
hauteur=200
Dx=100
Dy=100[/quote]

Je souhaite modifier ce fichier pour par exemple remplacer 300 par 400

avec fich = open(Fpref, “w”) le fichier Fref est effacé :smiling_imp:
avec fich = open(Fpref, “a”) On ajoute à la fin du fichier

Quelle méthode utilisez vous pour modifier un fichier?

Merci

edit: Je crois avoir trouvé en utilisant fich.seek()

Si ton fichier est petit et que tu n’a pas de problème de performance une manière simple c’est de lire l’ensemble du fichier du fichier, faire tes modifs en mémoire, te positionner au début du fichier et réécrire le fichier. Le problème du seeks “direct”, c’est qu’il faut que tu sache où commencer et que tu fasse gaffe à où tu t’arrête.

ok merci

Tu as déjà essayer le module fileinput? docs.python.org/library/fileinput.html

Je verrai cela cet après midi

Non jamais il a l’air surtout intéressant pour traiter différents fichiers (il a une option inplace qui pourrait être inintéressante, mais faudrait que je regarde plus en profondeur pour mieux comprendre).

Je trouve ce module intéressant même pour un seul fichier

http://bordel.deblan.fr/cours-info.iut-bm.univ-fcomte.fr/wiki/pmwiki.php/ModulesPython/Fileinput.html

Par contre pour la rapidité pour les gros fichiers il faudra voir.

Si la structure du fichier estt modifiable il y a aussi docs.python.org/library/configparser.html c’est très simple à utiliser :wink:.

Edit : orthographe … j’avais fait vraiement très fort !!!

Il y a pas de raisons, il devrait utiliser mmap et un générateur pour ne pas bouffer toute la mémoire et lire au file de l’eau.

Merci à vous deux.

configparser pour les fichiers pref et Fileinput pour éditer un fichier txt quelconque.

je continue donc mes pérégrinations pythoniennes.