logo oujood
🔍

Écrire dans un fichier texte en Python

Pour écrire dans un fichier en Python, on ouvre le fichier avec open() en choisissant le bon mode, on écrit avec write() ou writelines(), puis on ferme le fichier. Le bloc with gère la fermeture automatiquement.

OUJOOD.COM

Les modes d'ouverture pour l'écriture

La fonction open(fichier, mode) ouvre un fichier selon le mode indiqué. Pour l'écriture, trois modes sont disponibles :

ModeDescription
'w'Ouvre le fichier en écriture. Si le fichier existe, son contenu est effacé. S'il n'existe pas, il est créé.
'a'Ouvre le fichier en mode ajout. Le contenu existant est conservé, les nouvelles données sont ajoutées à la fin.
'w+'Ouvre le fichier en lecture et écriture (le contenu existant est effacé).

La fonction retourne un objet fichier qui expose deux méthodes d'écriture : write() pour une chaîne, et writelines() pour un itérable de chaînes. Dans les deux cas, les sauts de ligne ne sont pas ajoutés automatiquement — il faut les insérer manuellement avec \n.

Écrire avec write() et le bloc with

Le bloc with est la façon recommandée d'ouvrir un fichier. Il garantit la fermeture automatique du fichier à la fin du bloc, même si une erreur survient. Inutile d'appeler close() manuellement.

  📋 Copier le code

# Chaîne et liste à écrire
lignes = ["J'apprends", "Comment écrire des fichiers texte en Python",
          "avec le site oujood.com"]
c = "Ce fichier est destiné à des fins de test.\nBonne chance ! et merci.\n"
# Ouverture en mode 'w' : crée le fichier s'il n'existe pas
with open('lisez-moi.txt', 'w') as f:
    f.write(c)              # écriture de la chaîne
    for ligne in lignes:
        f.write(ligne)
        f.write('\n')       # saut de ligne manuel
# Lecture et affichage du contenu écrit
with open('lisez-moi.txt', 'r') as f:
    print(f.read())

Écrire sans bloc with : ne pas oublier close()

Sans with, il faut appeler close() explicitement après chaque opération. Si on oublie, le fichier peut rester verrouillé ou son contenu peut ne pas être entièrement écrit sur le disque.

  📋 Copier le code

lignes = ["J'apprends", "Comment écrire des fichiers texte en Python",
          "avec le site oujood.com"]
c = "Ce fichier est destiné à des fins de test.\nBonne chance !\nMerci.\n"
f = open('lisez-moi.txt', 'w')
f.write(c)
for ligne in lignes:
    f.write(ligne)
    f.write('\n')
f.close()  # fermeture obligatoire sans with
# Lecture du fichier
f = open('lisez-moi.txt', 'r')
print(f.read())
f.close()

Écrire avec writelines()

writelines() écrit tous les éléments d'un itérable (liste, tuple, ensemble) en une seule opération. Les sauts de ligne restent à la charge du développeur.

  📋 Copier le code

# Tuple de chaînes — writelines() accepte tout itérable
lignes = ("J'apprends", "Comment écrire des fichiers texte en Python",
          "avec le site oujood.com")
c = "Ce fichier est destiné à des fins de test.\nBonne chance !\nMerci.\n"
with open("lisez-moi.txt", "w") as f:
    f.write(c)
    for ligne in lignes:
        f.writelines(ligne)
        f.write("\n")
with open("lisez-moi.txt", "r") as f:
    print(f.read())

Ajouter du texte à la fin d'un fichier

Le mode 'a' (append) positionne le curseur à la fin du fichier existant. Les nouvelles données s'ajoutent après le contenu déjà présent, sans l'effacer.

  📋 Copier le code

plus_lignes = ['Nous allons', 'Ajouter du texte', 'à la fin du fichier']
# Mode 'a' : n'efface pas le contenu existant
with open('lisez-moi.txt', 'a') as f:
    f.write('\n'.join(plus_lignes))
# Vérification : lecture du fichier complet
with open('lisez-moi.txt', 'r') as f:
    print(f.read())

Écrire des caractères UTF-8

Sur certains systèmes Windows, l'encodage par défaut n'est pas UTF-8. Pour écrire des caractères non-ASCII (accents, idéogrammes, emojis), il faut passer explicitement encoding='utf-8' à open(). Sans ce paramètre, Python lève une UnicodeEncodeError.

  📋 Copier le code

quote = '一个成功的人是能够用人们扔来的砖头打下坚实基础的人。'
# encoding='utf-8' obligatoire pour les caractères non-ASCII
with open('quotes.txt', 'w', encoding='utf-8') as f:
    f.write(quote)

Par carabde | Mis à jour le 24 avril 2026