logo oujood
🔍

Python : Ouverture et gestion des fichiers

La gestion des fichiers en Python est une compétence fondamentale pour tout développeur. Python offre des outils natifs puissants pour lire, écrire, modifier et fermer des fichiers texte ou binaires. Chaque fichier texte est composé de lignes séquentielles terminées par un caractère de fin de ligne (EOL – End Of Line), comme \n. Comprendre le fonctionnement de la fonction open() et des modes d'ouverture est essentiel pour manipuler efficacement les fichiers en Python.

OUJOOD.COM

Fonctionnement de la fonction open() en Python

Avant d'effectuer toute opération sur un fichier – que ce soit la lecture de fichier Python, l'écriture dans un fichier Python ou l'ajout de données – il est obligatoire d'ouvrir le fichier avec la fonction native open(). Cette fonction retourne un objet fichier (aussi appelé file handle) qui sert de point d'accès aux données stockées sur le disque.

La syntaxe de base est la suivante :

f = open(chemin_accès_au_fichier, mode)

Le paramètre chemin_accès_au_fichier désigne l'emplacement du fichier sur le système. Si le fichier se trouve dans le même répertoire que le script Python, il suffit d'indiquer le nom du fichier. Dans le cas contraire, le chemin absolu ou relatif complet doit être fourni. Sous Windows, Python accepte aussi bien la barre oblique / que la double barre oblique inversée \\.

Par exemple, pour un fichier oujood.txt situé dans C:\exemple\, on écrira : open('c:/exemple/oujood.txt', 'r').

Les modes d'ouverture de fichiers en Python

Le second paramètre de open() définit le mode d'accès au fichier. Voici les modes disponibles :

ModeDescription
rOuvre un fichier existant en lecture seule. Erreur si le fichier n'existe pas.
wOuvre ou crée un fichier en écriture. Écrase le contenu existant.
aOuvre ou crée un fichier en ajout (append). Conserve les données existantes.
r+Ouvre un fichier existant en lecture et écriture. Écrase depuis le début.
w+Ouvre ou crée un fichier en écriture et lecture. Efface le contenu existant.
a+Ouvre ou crée un fichier en ajout et lecture. Conserve les données existantes.
rb / wbModes binaires pour lire/écrire des fichiers non textuels (images, PDF…).

Exemple 1 – Ouvrir et lire un fichier ligne par ligne

Cet exemple illustre l'ouverture d'un fichier texte en mode lecture et l'affichage de chaque ligne grâce à une boucle for. C'est la méthode la plus courante pour parcourir le contenu d'un fichier en Python sans charger l'intégralité du fichier en mémoire.

  📋 Copier le code

# Ouverture du fichier 'oujood.txt' en mode lecture ('r')
# Si le fichier est absent, Python lève une exception FileNotFoundError
fichier = open('oujood.txt', 'r')
# La boucle for itère sur chaque ligne de l'objet fichier
# Python lit le fichier séquentiellement sans tout charger en RAM
for ligne in fichier:
    print(ligne)  # Affiche la ligne avec son caractère \n intégré
# Bonne pratique : toujours fermer le fichier après utilisation
fichier.close()

La boucle for itère directement sur l'objet fichier, ce qui est plus efficace en mémoire que readlines() pour les fichiers volumineux.

Modes texte et binaire

En complément du mode d'accès, Python distingue deux types de traitement :

  • "t" – Mode texte (valeur par défaut) : les données sont décodées selon l'encodage du système (UTF-8 par défaut sous Python 3).
  • "b" – Mode binaire : les données sont lues ou écrites sous forme d'octets bruts, indispensable pour les images, PDF, fichiers audio, etc.

Les deux écritures suivantes sont donc équivalentes pour ouvrir un fichier texte en lecture :

f = open("oujood.txt")      # équivaut à open("oujood.txt", "rt")
f = open("oujood.txt", "rt") # mode texte + lecture, valeurs par défaut

⚠️ Note importante : Si le fichier spécifié n'existe pas, Python lève une exception FileNotFoundError. Utilisez systématiquement la gestion d'erreurs pour anticiper ce cas.

Exemple 2 – Ouverture sécurisée avec try/except

En production, il est indispensable de gérer les exceptions lors de l'ouverture d'un fichier Python. Le bloc try/except permet d'intercepter les erreurs et d'afficher un message explicite à l'utilisateur plutôt qu'un traceback brut.

  📋 Copier le code

# Le bloc try tente d'exécuter le code susceptible de lever une exception
try:
    fichier = open('oujood.txt', 'r')  # tentative d'ouverture en lecture
    for ligne in fichier:
        print(ligne)  # affichage ligne par ligne
    fichier.close()   # fermeture explicite dans le bloc try
# except intercepte toute exception levée dans le try
# Préférer "except FileNotFoundError" pour une gestion ciblée
except FileNotFoundError:
    print("Erreur : le fichier spécifié est introuvable.")
except Exception as e:
    print(f"Une erreur inattendue est survenue : {e}")

Exemple 3 – Méthode recommandée avec le gestionnaire de contexte with

En Python moderne (3.x), la meilleure pratique pour ouvrir un fichier est d'utiliser le gestionnaire de contexte with open(). Il garantit la fermeture automatique du fichier, même en cas d'exception, sans avoir à appeler close() manuellement.

  📋 Copier le code

# 'with' ouvre le fichier et le ferme automatiquement à la fin du bloc
# même si une exception est levée à l'intérieur du bloc
# encoding='utf-8' est recommandé pour éviter les erreurs d'encodage
with open('oujood.txt', 'r', encoding='utf-8') as fichier:
    for ligne in fichier:
        print(ligne.strip())  # strip() supprime les \n en fin de ligne
# Le fichier est automatiquement fermé ici, hors du bloc with

La méthode close() en Python

Lorsque with n'est pas utilisé, il est impératif de fermer manuellement le fichier avec la méthode close(). Un fichier laissé ouvert peut entraîner des fuites de ressources système, des données non écrites sur le disque (tampons non vidés) et des comportements imprévisibles dans les applications concurrentes.

La syntaxe est :

objet_fichier.close()

Exemple 4 – Vérification d'ouverture et fermeture explicite

Cet exemple montre comment vérifier qu'un fichier est bien ouvert avant de le fermer, puis gérer proprement l'exception si l'ouverture a échoué.

  📋 Copier le code

try:
    fichier = open('oujood.txt', 'r', encoding='utf-8')
    # La propriété .closed retourne False si le fichier est ouvert
    if not fichier.closed:
        print("Le fichier a été ouvert avec succès.")
        # Ici on effectuerait les opérations sur le fichier
        fichier.close()  # fermeture explicite et libération des ressources
        print(f"Fichier fermé : {fichier.closed}")  # affiche True
except FileNotFoundError:
    print("Échec : le fichier est introuvable ou le chemin est incorrect.")

La propriété .closed retourne True si le fichier est fermé, False s'il est encore ouvert. C'est un moyen simple de vérifier l'état d'un objet fichier en Python.

→ Voir notre tutoriel complet sur la gestion des exceptions Python

Par carabde | Mis à jour le 23 février 2026