Introduction
Manipuler des fichiers est une tâche courante en programmation, que ce soit pour lire des données d'un fichier texte, écrire des résultats dans un fichier, ou même manipuler des fichiers binaires. Python offre des outils simples et puissants pour ouvrir, lire, écrire, et fermer des fichiers. Que ce soit pour traiter de grands ensembles de données ou gérer des fichiers de configuration, Python rend ces opérations accessibles à tous.
Dans cet article, nous allons explorer comment ouvrir des fichiers, lire et écrire des données dans ces fichiers, et discuter des bonnes pratiques pour la gestion des fichiers en Python.
1. Ouvrir un fichier en Python
Avant de lire ou écrire dans un fichier, vous devez l'ouvrir avec la fonction open()
. Cette fonction prend deux paramètres principaux :
- Le nom (ou chemin) du fichier.
- Le mode d’ouverture du fichier : lecture (
"r"
), écriture ("w"
), ajout ("a"
), ou binaire ("b"
).
Syntaxe :
fichier = open('nom_du_fichier', 'mode')
Modes d'ouverture :
"r"
: Lecture seule (mode par défaut)."w"
: Écriture (écrase le fichier s'il existe déjà)."a"
: Ajout (ajoute des données à la fin du fichier sans l'écraser)."b"
: Mode binaire (pour les fichiers non textuels comme les images).
2. Lecture d'un fichier
Python propose plusieurs méthodes pour lire un fichier selon la manière dont vous voulez traiter les données.
2.1. Lire tout le contenu avec read()
La méthode read()
lit l'intégralité du fichier en une seule fois.
fichier = open("exemple.txt", "r")
contenu = fichier.read()
print(contenu)
fichier.close()
Ici, nous ouvrons le fichier exemple.txt
en mode lecture, lisons tout son contenu, puis l'affichons.
2.2. Lire ligne par ligne avec readline()
La méthode readline()
lit le fichier une ligne à la fois.
fichier = open("exemple.txt", "r")
ligne = fichier.readline()
while ligne:
print(ligne)
ligne = fichier.readline()
fichier.close()
2.3. Lire toutes les lignes à la fois avec readlines()
La méthode readlines()
retourne une liste où chaque élément est une ligne du fichier.
fichier = open("exemple.txt", "r")
lignes = fichier.readlines()
for ligne in lignes:
print(ligne)
fichier.close()
3. Écriture dans un fichier
Pour écrire dans un fichier, vous devez ouvrir le fichier en mode écriture ("w"
) ou ajout ("a"
). La fonction write()
permet d’écrire une chaîne de caractères dans le fichier.
3.1. Écrire dans un fichier avec write()
fichier = open("exemple.txt", "w")
fichier.write("Ceci est une nouvelle ligne.\n")
fichier.close()
Dans cet exemple, le contenu existant du fichier sera écrasé.
3.2. Ajouter des données à un fichier avec a
Pour ajouter du contenu à la fin d’un fichier sans écraser le contenu existant, utilisez le mode "a"
(ajout).
fichier = open("exemple.txt", "a")
fichier.write("Nouvelle ligne ajoutée.\n")
fichier.close()
4. Utiliser with
pour gérer les fichiers
Il est recommandé d'utiliser la construction with
pour ouvrir un fichier, car elle gère automatiquement la fermeture du fichier, même si une exception survient.
Syntaxe :
with open("exemple.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)
# Le fichier est automatiquement fermé à la fin du bloc
Cette approche permet de simplifier la gestion des fichiers et d’éviter d’oublier de les fermer.
5. Lecture et écriture de fichiers binaires
Les fichiers binaires (images, vidéos, etc.) ne peuvent pas être manipulés comme des fichiers texte. Pour travailler avec eux, il faut spécifier le mode b
lors de l’ouverture du fichier.
Exemple : Lire et écrire un fichier binaire
# Lire un fichier binaire
with open("image.jpg", "rb") as fichier_binaire:
contenu = fichier_binaire.read()
# Écrire dans un fichier binaire
with open("copie_image.jpg", "wb") as fichier_binaire:
fichier_binaire.write(contenu)
6. Gérer les erreurs lors de la manipulation des fichiers
Il est important de gérer les erreurs lors de l’ouverture ou de la manipulation des fichiers, par exemple lorsque le fichier n’existe pas. Pour cela, vous pouvez utiliser les blocs try-except
.
Exemple : Gestion des erreurs avec try-except
try:
with open("inexistant.txt", "r") as fichier:
contenu = fichier.read()
except FileNotFoundError:
print("Erreur : Le fichier n'existe pas.")
Cette approche permet de gérer proprement les erreurs sans que le programme ne plante.
Conclusion
La gestion des fichiers en Python est simple mais puissante. Avec les méthodes de lecture et d'écriture, vous pouvez manipuler les fichiers texte et binaires de manière efficace. En utilisant les bonnes pratiques comme le bloc with
et la gestion des erreurs avec try-except
, vous vous assurez que vos programmes sont à la fois robustes et performants.