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 :
| Mode | Description |
|---|---|
'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.
# 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.
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.
# 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.
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.
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