web-dev-qa-db-fra.com

comment ajouter des lignes à un fichier existant en utilisant python

J'ai déjà créé un fichier txt avec python avec quelques lignes de texte lues par un programme simple. Cependant, j'ai quelques problèmes pour rouvrir le fichier et écrire des lignes supplémentaires dans le fichier dans une partie ultérieure du programme (les lignes seront écrites à partir des entrées de l'utilisateur obtenues ultérieurement).

with open('file.txt', 'w') as file:
    file.write('input')

Cela suppose que 'fichier.txt' a déjà été ouvert et écrit. Lors de la réouverture une seconde fois, avec le code que j'ai actuellement, je dois effacer tout ce qui a été écrit auparavant et réécrire la nouvelle ligne. Existe-t-il un moyen d'éviter que cela ne se produise (et éventuellement de réduire le code excessif d'ouverture du fichier à nouveau)?

47
user1246462

Si vous voulez ajouter au fichier, ouvrez-le avec 'a'. Si vous voulez chercher dans le fichier pour trouver l’endroit où vous devez insérer la ligne, utilisez 'r+'. ( docs )

54
Dougal

Ouvrez le fichier pour 'ajouter' plutôt que 'écrire'.

with open('file.txt', 'a') as file:
    file.write('input')
42
Jeff L

Les réponses ci-dessus sont correctes, mais pour ajouter les données en tant que nouvelle ligne, au lieu de les ajouter à la fin de la dernière ligne du fichier, utilisez la méthode suivante:

with open('file.txt', 'a') as file:
    file.writelines('input')
10
v4gil

Utilisation 'a', 'a' signifie append. Tout ce qui est écrit dans un fichier ouvert avec 'a' attribut est écrit à la fin du fichier.

with open('file.txt', 'a') as file:
    file.write('input')
9