14.2 Écriture dans des fichiers
Objectifs d'apprentissage
À la fin de cette section, vous devriez être capable de :
- Comprendre comment ouvrir un fichier en écriture.
- Expliquer les différents modes d'ouverture de fichier en Python.
- Démontrer l'utilisation de la fonction
write()pour écrire dans un fichier. - Comprendre l'importance de fermer un fichier.
Ouvrir un fichier en écriture
Un fichier peut être ouvert en lecture, ce qui n'autorise aucune modification, ou en écriture, ce qui permet d'apporter des modifications au fichier. Le mode définit si un fichier est ouvert en lecture seule ou en écriture. Le mode par défaut de la fonction open() est la lecture seule. Un second paramètre définit le mode.
Ex. : open("output.txt", 'w') ouvre le fichier output.txt en mode écriture. Le tableau suivant présente les modes courants.
| Paramètre | Nom du mode et description | Exemple |
|---|---|---|
'r' |
Mode lecture : Ouvre le fichier spécifié en lecture. Si le fichier n'existe pas, une erreur se produit. Lorsqu'aucun paramètre de mode n'est utilisé, le comportement par défaut consiste à ouvrir le fichier en mode lecture. |
|
'w' |
Mode écriture : Ouvre le fichier spécifié en écriture. Si le fichier n'existe pas, il est créé. Si le fichier existe déjà, son contenu est écrasé. |
|
'a' |
Mode ajout : Ouvre le fichier spécifié en mode ajout, ce qui signifie que des informations sont ajoutées à la fin du fichier existant. Si le fichier n'existe pas, il est créé. |
|
open().
Concepts en pratique
Modes de fichiers
Supposons qu'un fichier nommé logfile.txt existe.
Utiliser write()
et close()
La fonction write() sert à écrire dans un fichier déjà ouvert. La fonction write() n'accepte qu'un paramètre de type chaîne. Les autres types de variables doivent être convertis en chaîne avant d'être écrits à l'aide de write().
La fonction write() n'ajoute pas automatiquement de caractère de retour à la ligne, contrairement à la fonction print(). Un saut de ligne doit être ajouté explicitement en insérant un caractère de retour à la ligne ('\n').
La fonction write() écrit automatiquement dans une mémoire temporaire appelée tampon de fichier. Pour garantir que les informations sont bien écrites dans le fichier, la fonction close() doit être utilisée. La fonction close() finalise les modifications et ferme le fichier.
Exemple 14.2
Écrire et ajouter dans un fichier
"""Operations for writing and appending to files."""
# Create a new file
opfile = open("output.txt", 'w')
# Writing to the file
opfile.write("Écriture dans un nouveau fichier.")
# To add another line the newline character must be used
opfile.write("\nDeuxième ligne.")
# Ensure changes are saved by closing the file
opfile.close()
# Read and display the contents of the file
infile = open("output.txt")
print("\nLecture du fichier d'origine :\n")
print(infile.read())
infile.close()
# Reopen the file in append mode to add to the file
opfile = open("output.txt", 'a')
# Note the use of newline characters
opfile.write("\nAjout au fichier.")
opfile.write("\nAjout d'une autre ligne.")
# Ensure changes are saved by closing the file
opfile.close()
# Read and display the contents of the modified file
infile = open("output.txt")
print("\nLecture du fichier modifié :\n")
print(infile.read())
infile.close()
La sortie du code est la suivante :
Read the original file:
Writing to a new file.
Second line.
Read the modified file:
Writing to a new file.
Second line.
Adding to the file.
Adding another line.
Concepts en pratique
Écriture dans des fichiers
resources.txt existe déjà. Que se passerait-il pour chacun des extraits de code suivants ?
À vous d'essayer
Écriture dans un nouveau fichier
Écrivez une ligne de texte dans un fichier nommé out.txt. N'oubliez pas d'utiliser close(). out.txt ne doit contenir que la ligne de texte que vous avez écrite.
À vous d'essayer
Écriture dans un fichier existant
Ajoutez deux lignes de texte au fichier nommé out.log, de sorte qu'out.log comporte trois lignes après l'exécution du code.
Indication : N'oubliez pas qu'il vous faut un caractère de retour à la ligne.