[python] écrire en début de fichier

Résolu/Fermé
nidhogg-59 Messages postés 102 Date d'inscription mercredi 20 juin 2012 Statut Membre Dernière intervention 5 décembre 2015 - 30 sept. 2012 à 14:37
 caracana - 27 mai 2013 à 17:55
Bonjour,

Comme écrit dans le titre, je souhaiterais écrire, grâce à un script python, au début d'un fichier. Malgrès toutes mes recherches, je n'ai rien trouvé (sauf pour les autres languages).
A pire, si vous avez des idées en batch, je suis preneur, car je fonctionne sous windows.

Merci d'avance!


A voir également:

3 réponses

Bonjour,

Désolé de relancer un topic créé il y a 6 mois, mais je cherchais moi aussi comment faire, je suis tombé sur ce topic et sur la réponse de Pacorabanix.

Néanmoins, n'aimant pas trop cette solution (on doit créer un fichier temporaire), j'ai fait la mienne, et je la trouve meilleure :

B = "le texte a rajouter au début"
fichier = open(A, "r")
total = B + fichier.read()
fichier.close()

fichier = open(A, "w")
fichier.write(total)
fichier.close()
1
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
2 nov. 2012 à 14:36
J'espère pouvoir t'aider avec ceci:
# Ouverture d'un fichier en *lecture*:
fichier = open("/etc/passwd", "r")
# Ouverture d'un fichier en *écriture*:
fichier = open("/etc/passwd", "w")
# Ouverture d'un fichier en *ajout*:
fichier = open("/etc/passwd", "a")

Tu noteras qu'une petite recherche m'a donné cela en 2 secondes !
0
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
2 nov. 2012 à 16:44
Tu as ton fichier d'origine, appelons le "A"

* créer un nouveau fichier (B), mettre ce que tu voulais rajouter au début de A
* copier le reste de A à la suite de ce que tu as mis dans B.
* supprimer A
* renommer B en A


peut-être qu'il y a des bibliothèques qui font ces petites routines, mais je ne les connais pas.
En tout cas ça me semble la manière "normale" de faire ces ajouts en début de fichier, c'est un peu de boulot mais la choses sont faites ainsi. Peu importe le langage.
0