🐍 Python : Fichiers

La manipulation de fichiers est essentielle en Python pour lire, écrire et traiter des données stockées sur le système de fichiers.

📑 Sommaire

📄 Lire un fichier

Utilisez l'instruction with et la fonction open() pour lire le contenu complet d'un fichier :

with open("exemple.txt", "r") as fichier:
    contenu = fichier.read()
    print(contenu)

L'utilisation de with garantit la fermeture du fichier à la fin du bloc, même en cas d'erreur.

📝 Écrire dans un fichier

Pour écrire dans un fichier (en écrasant son contenu s'il existe déjà) :

with open("exemple.txt", "w") as fichier:
    fichier.write("Bonjour monde")

Le mode "w" crée le fichier s'il n'existe pas ou le vide s'il existe déjà.

➕ Ajouter du contenu

Pour ajouter du contenu à la fin d'un fichier existant sans l'écraser :

with open("exemple.txt", "a") as fichier:
    fichier.write("\nLigne ajoutée")

Le mode "a" (append) place le curseur à la fin du fichier avant d'écrire.

🔁 Lire ligne par ligne

Pour traiter un fichier ligne par ligne (optimal pour les grands fichiers) :

with open("exemple.txt", "r") as fichier:
    for ligne in fichier:
        print(ligne.strip())

La méthode strip() élimine les espaces et les retours à la ligne en début et fin de chaîne.

❌ Gérer les erreurs de fichier

Capturez les exceptions spécifiques lors de la manipulation de fichiers :

try:
    with open("inexistant.txt") as f:
        print(f.read())
except FileNotFoundError:
    print("Fichier non trouvé")

D'autres exceptions courantes : PermissionError, IsADirectoryError, etc.

🎁 Bonus : Autres opérations sur les fichiers

Modes d'ouverture combinés

# Mode lecture et écriture binaire
with open("image.png", "rb+") as fichier:
    data = fichier.read()
    # Manipuler data...
    fichier.seek(0)  # Revenir au début du fichier
    fichier.write(data_modifiée)

Utilisation du module pathlib (Python 3.4+)

from pathlib import Path

# Créer un objet Path
chemin = Path("dossier/sous-dossier/fichier.txt")

# Vérifier si un fichier existe
if chemin.exists():
    print("Le fichier existe !")

# Créer des dossiers si nécessaire
chemin.parent.mkdir(parents=True, exist_ok=True)

# Lire/écrire avec pathlib
chemin.write_text("Contenu du fichier")
contenu = chemin.read_text()
🏠 Retour au sommaire général