66 votes

Ajouter des lignes à un fichier existant en utilisant Python

J'ai déjà créé un fichier txt en utilisant Python avec quelques lignes de texte qui seront lues par un programme simple. Cependant, j'ai du mal à rouvrir le fichier et à écrire des lignes supplémentaires dans le fichier dans une partie ultérieure du programme. (Les lignes seront écrites à partir de l'entrée utilisateur obtenue plus tard.)

with open('file.txt', 'w') as file:
    file.write('entrée')

Cela suppose que 'file.txt' a été ouvert avant et écrit. En rouvrant ce fichier une deuxième fois cependant, avec le code que j'ai actuellement, je dois effacer tout ce qui a été écrit auparavant et réécrire la nouvelle ligne. Y a-t-il un moyen d'empêcher cela de se produire (et éventuellement réduire le code excessif d'ouverture du fichier à nouveau)?

70voto

Dougal Points 15023

Si vous souhaitez ajouter du contenu au fichier, ouvrez-le avec 'a'. Si vous souhaitez parcourir le fichier pour trouver l'endroit où vous devez insérer la ligne, utilisez 'r+'. (docs)

68voto

Jeff L Points 1951

Ouvrez le fichier en mode 'ajout' plutôt qu'en mode 'écriture'.

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

16voto

Ashwini Chaudhary Points 94431

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

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

0voto

A-B-B Points 797

Si vous avez un objet pathlib.Path (au lieu d'un objet str), envisagez d'utiliser sa méthode open.

with my_path.open(mode='a') as file:
    file.write(f'{my_line}\n')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X