Ce tutoriel fournit un guide complet sur la manipulation de fichiers en Python. Les fichiers sont cruciaux pour le stockage et la récupération persistants de données, permettant à vos programmes d’interagir avec des données au-delà de leur temps d’exécution. Nous aborderons les opérations fondamentales sur les fichiers, de l’ouverture et de la fermeture des fichiers à leur lecture, écriture, renommage et suppression. Nous explorerons également les meilleures pratiques pour la gestion des erreurs et la gestion efficace des fichiers.
Table des matières :
- Ouverture des fichiers
- Objets fichiers et gestionnaires de contexte
- Écriture dans les fichiers
- Lecture des fichiers
- Opérations sur le système de fichiers : renommage et suppression
- Gestion des exceptions
1. Ouverture des fichiers
La fonction open()
est la pierre angulaire de l’interaction avec les fichiers en Python. Elle prend le nom de fichier (une chaîne de caractères) et un mode comme arguments principaux. Le mode détermine comment le fichier sera accédé (lecture, écriture, ajout, etc.).
Les modes courants incluent :
'r'
: Lecture (par défaut). Ouvre pour la lecture. Lève une erreur si le fichier n’existe pas.'w'
: Écriture. Ouvre pour l’écriture. Écrase le fichier s’il existe ; le crée s’il n’existe pas.'a'
: Ajout. Ouvre pour l’écriture. Ajoute des données à la fin si le fichier existe ; le crée s’il n’existe pas.'x'
: Création exclusive. Crée un nouveau fichier. Lève une erreur si le fichier existe déjà.'b'
: Mode binaire. Pour les fichiers non textuels (images, exécutables). Peut être combiné avec d’autres modes (par exemple,'rb'
,'wb'
).'t'
: Mode texte (par défaut). Pour les fichiers texte.
# Ouvrir un fichier pour l'écriture
file = open("my_file.txt", "w")
# Ouvrir un fichier pour la lecture
file = open("my_file.txt", "r")
# Ouvrir un fichier en mode binaire pour la lecture
file = open("image.jpg", "rb")
2. Objets fichiers et gestionnaires de contexte
open()
renvoie un objet fichier, fournissant des méthodes pour l’interaction avec les fichiers. Une bonne pratique essentielle consiste à utiliser des gestionnaires de contexte (instruction with
) pour garantir que les fichiers sont automatiquement fermés, même en cas d’erreur :
with open("my_file.txt", "w") as file:
file.write("Ceci est un texte.n") # Fichier automatiquement fermé après ce bloc
with open("my_file.txt", "r") as file:
contents = file.read()
print(contents)
3. Écriture dans les fichiers
La méthode write()
écrit une chaîne de caractères dans le fichier. Pour écrire plusieurs lignes, utilisez n
pour les sauts de ligne.
with open("my_file.txt", "w") as file:
file.write("Ligne 1n")
file.write("Ligne 2n")
4. Lecture des fichiers
Plusieurs méthodes permettent de lire les données d’un fichier :
read()
: Lit tout le contenu du fichier dans une seule chaîne de caractères.readline()
: Lit une seule ligne.readlines()
: Lit toutes les lignes dans une liste de chaînes de caractères.- Itération : Vous pouvez directement itérer sur un objet fichier pour lire les lignes une par une.
with open("my_file.txt", "r") as file:
contents = file.read()
print(contents)
file.seek(0) # Réinitialiser le pointeur de fichier
line = file.readline()
print(line)
file.seek(0) # Réinitialiser le pointeur de fichier
lines = file.readlines()
print(lines)
file.seek(0) # Réinitialiser le pointeur de fichier
for line in file:
print(line, end="") #end="" évite un saut de ligne supplémentaire
5. Opérations sur le système de fichiers : renommage et suppression
Le module os
fournit des fonctions pour la manipulation du système de fichiers :
import os
# Renommer un fichier
os.rename("my_file.txt", "new_file.txt")
# Supprimer un fichier
os.remove("new_file.txt")
6. Gestion des exceptions
Gérez toujours les exceptions potentielles (FileNotFoundError
, IOError
, etc.) lorsque vous travaillez avec des fichiers :
try:
with open("my_file.txt", "r") as file:
# ... opérations sur les fichiers ...
except FileNotFoundError:
print("Fichier introuvable.")
except IOError as e:
print(f"Une erreur d'E/S s'est produite : {e}")