Exercice 28 / 100

Écriture de fichier

ConsigneÉcris la liste `noms = ['Alice', 'Bob', 'Charlie']` dans un fichier 'noms.txt', un nom par ligne

📖 Cours

Pour écrire une liste de valeurs dans un fichier, on combine open en mode 'w' et une boucle for.

Rappel des modes

'w' → écrase le fichier (ou le crée s'il n'existe pas)'a' → ajoute à la suite (sans écraser)
Le mode w écrase tout le contenu existant, le mode a écrit à la suite sans rien effacer : c'est ce qui sépare un export d'un journal
Le mode w écrase tout le contenu existant, le mode a écrit à la suite sans rien effacer : c'est ce qui sépare un export d'un journal

Écrire ligne par ligne

noms = ['Alice', 'Bob', 'Charlie']
with open('/tmp/noms.txt', 'w') as f: for nom in noms: f.write(nom + '\n') # ⚠ \n indispensable pour passer à la ligne

f.write() prend uniquement une chaîne de caractères. Pour des nombres :

f.write(str(42) + '\n')

Écrire tout d'un coup avec writelines

f.writelines(liste_de_strs)

writelines n'ajoute pas de \n entre les éléments. Si tu veux des sauts de ligne, ajoute-les toi-même.

lignes = [n + '\n' for n in noms]with open('/tmp/noms.txt', 'w') as f: f.writelines(lignes)

Équivalent plus court avec join :

with open('/tmp/noms.txt', 'w') as f: f.write('\n'.join(noms)) # pas de \n final

Mode append : ajouter sans écraser

with open('/tmp/log.txt', 'a') as f: f.write('Nouvelle ligne\n')

Utile pour un fichier de log : chaque exécution ajoute, n'efface pas l'historique.

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →