OUJOOD.COM
La fonction open() en Python
Pour lire ou écrire dans un fichier, Python doit d'abord l'ouvrir. C'est le rôle de la fonction native open() : elle crée un objet fichier (aussi appelé file handle) qui fait le lien entre votre script et les données sur le disque.
La syntaxe de base :
f = open(chemin_accès_au_fichier, mode)
Le premier argument est le chemin du fichier. Si le fichier se trouve dans le même dossier que votre script, son nom seul suffit. Sinon, indiquez le chemin complet — absolu ou relatif. Sous Windows, Python accepte aussi bien / que \\ comme séparateur.
Exemple pour un fichier oujood.txt dans C:\exemple\ :
open('c:/exemple/oujood.txt', 'r')
Les modes d'ouverture
Le second argument définit ce que vous voulez faire avec le fichier. Voici les modes disponibles :
| Mode | Description |
|---|---|
r | Lecture seule. Le fichier doit exister, sinon Python lève une erreur. |
w | Écriture. Crée le fichier s'il n'existe pas ; écrase le contenu existant. |
a | Ajout en fin de fichier (append). Crée le fichier si nécessaire, sans toucher au contenu existant. |
r+ | Lecture et écriture. Le fichier doit exister. L'écriture repart du début. |
w+ | Écriture et lecture. Crée ou vide le fichier. |
a+ | Ajout et lecture. Crée le fichier si nécessaire, conserve l'existant. |
rb / wb | Modes binaires pour les fichiers non textuels : images, PDF, audio… |
Mode texte et mode binaire
Par défaut, Python ouvre les fichiers en mode texte : les données sont lues comme des chaînes de caractères, décodées en UTF-8. Si vous travaillez avec des fichiers binaires (images, archives…), ajoutez b au mode.
Ces deux écritures sont donc équivalentes :
f = open("oujood.txt") # équivaut à open("oujood.txt", "rt")
f = open("oujood.txt", "rt") # mode texte + lecture : valeurs par défaut
⚠️ Attention : si le fichier n'existe pas, Python lève une exception FileNotFoundError. Pensez toujours à gérer cette erreur.
Exemple 1 — Lire un fichier ligne par ligne
L'approche la plus simple pour parcourir un fichier texte : ouvrir en mode r puis itérer sur l'objet fichier avec une boucle for. Python lit une ligne à la fois sans tout charger en mémoire, ce qui fonctionne même sur de gros fichiers.
# Ouverture en lecture — erreur si le fichier est absent fichier = open('oujood.txt', 'r') # La boucle for lit une ligne à la fois, sans tout charger en RAM for ligne in fichier: print(ligne) # chaque ligne contient son \n de fin # Fermer le fichier pour libérer les ressources système fichier.close()
Itérer directement sur l'objet fichier est plus efficace que readlines(), qui charge toutes les lignes d'un coup en mémoire.
Exemple 2 — Ouverture sécurisée avec try/except
Un fichier peut être absent, déplacé, ou illisible. Le bloc try/except intercepte ces situations et affiche un message clair plutôt qu'un traceback brut — indispensable dès que votre code tourne sur la machine de quelqu'un d'autre.
# try : on tente l'ouverture try: fichier = open('oujood.txt', 'r') for ligne in fichier: print(ligne) fichier.close() # FileNotFoundError : le fichier est introuvable except FileNotFoundError: print("Erreur : le fichier spécifié est introuvable.") # Exception générique pour les autres erreurs imprévues except Exception as e: print(f"Une erreur inattendue est survenue : {e}")
Exemple 3 — Le gestionnaire de contexte with open()
C'est la façon d'ouvrir un fichier en Python 3. Le mot-clé with garantit que le fichier est fermé automatiquement dès la fin du bloc, même si une exception survient à l'intérieur. Pas besoin d'appeler close().
# with ouvre le fichier et le ferme tout seul en sortant du bloc # encoding='utf-8' évite les erreurs sur les caractères accentués with open('oujood.txt', 'r', encoding='utf-8') as fichier: for ligne in fichier: print(ligne.strip()) # strip() retire le \n en fin de ligne # Ici le fichier est déjà fermé, automatiquement
Préciser encoding='utf-8' reste une bonne habitude : avant Python 3.15,
l'encodage utilisé dépend de l'OS et peut provoquer des erreurs sur les caractères accentués.
Même sur les versions récentes, le préciser explicitement rend votre code plus lisible
et portable.
Fermer un fichier avec close()
Quand on n'utilise pas with, il faut fermer le fichier manuellement. Un fichier laissé ouvert mobilise des ressources système et peut bloquer d'autres programmes qui veulent y accéder. Sur les fichiers en écriture, des données peuvent aussi rester dans le tampon et ne jamais atteindre le disque.
La syntaxe :
objet_fichier.close()
Exemple 4 — Vérifier l'état d'un fichier avant de le fermer
La propriété .closed retourne True si le fichier est fermé, False s'il est encore ouvert. Voici comment s'en servir pour une fermeture propre :
try:
fichier = open('oujood.txt', 'r', encoding='utf-8')
# .closed vaut False si le fichier est encore ouvert
if not fichier.closed:
print("Fichier ouvert avec succès.")
# lecture ou écriture ici
fichier.close()
print(f"Fichier fermé : {fichier.closed}") # affiche True
except FileNotFoundError:
print("Échec : le fichier est introuvable ou le chemin est incorrect.")
→ Voir le tutoriel complet sur la gestion des exceptions Python
Par carabde | Mis à jour le 20 avril 2026