Introduction aux Fichiers en Python
1. Qu'est-ce qu'un fichier en informatique ?
Un fichier en informatique est une unité de stockage utilisée pour contenir des données sur un
ordinateur. Ces données peuvent être du texte, des images, de la vidéo, des programmes, etc.
Les fichiers sont stockés sur des systèmes de fichiers et peuvent être ouverts, lus, modifiés et
fermés par des programmes.
En Python, travailler avec des fichiers consiste essentiellement à les ouvrir, à effectuer des
opérations dessus, puis à les fermer. Python offre des fonctions intégrées pour gérer les
fichiers de manière simple et efficace.
2. Types de fichiers
Fichiers texte : Contiennent des données sous forme de texte (lettres, chiffres,
symboles). Exemple : .txt, .csv.
Fichiers binaires : Contiennent des données sous forme binaire (non lisible
directement par un humain). Exemple : .jpg, .exe, .pdf.
3. Ouvrir un fichier
En Python, vous utilisez la fonction open() pour ouvrir un fichier. Cette fonction prend deux
paramètres principaux :
Le nom du fichier.
Le mode d'ouverture : il spécifie comment vous voulez interagir avec le fichier (lire,
écrire, ajouter, etc.).
Syntaxe :
fichier = open('nom_du_fichier', 'mode')
Voici quelques modes d’ouverture les plus utilisés :
'r' : Lire un fichier (mode par défaut). Le fichier doit exister.
'w' : Écrire dans un fichier (crée le fichier si nécessaire). Si le fichier existe déjà, il est
écrasé.
'a' : Ajouter à un fichier. Si le fichier n'existe pas, il est créé.
'b' : Ouvrir un fichier en mode binaire (utilisé avec les fichiers binaires).
'x' : Créer un fichier et ouvrir pour écriture (échoue si le fichier existe déjà).
4. Lire un fichier
Lire tout le contenu d'un fichier :
# Ouvrir un fichier en mode lecture
fichier = open('exemple.txt', 'r')
# Lire tout le contenu du fichier
contenu = fichier.read()
# Afficher le contenu
print(contenu)
# Fermer le fichier
fichier.close()
Lire ligne par ligne :
# Ouvrir un fichier en mode lecture
fichier = open('exemple.txt', 'r')
# Lire ligne par ligne
for ligne in fichier:
print(ligne, end='') # end='' évite un double saut de ligne
# Fermer le fichier
fichier.close()
Lire toutes les lignes dans une liste :
# Ouvrir un fichier en mode lecture
fichier = open('exemple.txt', 'r')
# Lire toutes les lignes et les stocker dans une liste
lignes = fichier.readlines()
# Afficher les lignes
print(lignes)
# Fermer le fichier
fichier.close()
5. Écrire dans un fichier
Écrire dans un fichier (écraser le fichier existant) :
# Ouvrir un fichier en mode écriture
fichier = open('exemple.txt', 'w')
# Écrire du texte dans le fichier
fichier.write("Ceci est une nouvelle ligne dans le fichier.")
# Fermer le fichier
fichier.close()
Ajouter à un fichier sans écraser le contenu :
# Ouvrir un fichier en mode ajout
fichier = open('exemple.txt', 'a')
# Ajouter du texte à la fin du fichier
fichier.write("\nAjouté à la fin du fichier.")
# Fermer le fichier
fichier.close()
6. Manipulations avancées des fichiers
Lire et écrire dans un fichier en mode binaire :
# Ouvrir un fichier en mode binaire (par exemple, une image)
fichier = open('image.jpg', 'rb')
# Lire le contenu binaire du fichier
contenu_binaire = fichier.read()
# Ouvrir un autre fichier pour écrire ce contenu
fichier2 = open('copie_image.jpg', 'wb')
fichier2.write(contenu_binaire)
# Fermer les fichiers
fichier.close()
fichier2.close()
7. Utiliser le bloc with pour gérer les fichiers
En Python, il est recommandé d'utiliser le bloc with pour ouvrir et manipuler des fichiers.
Cela garantit que le fichier sera toujours fermé, même en cas d'erreur. Cela permet également
de simplifier le code.
Exemple de lecture avec with :
with open('exemple.txt', 'r') as fichier:
contenu = fichier.read()
print(contenu)
Exemple d'écriture avec with :
with open('exemple.txt', 'w') as fichier:
fichier.write("Ceci est une nouvelle ligne dans le fichier.")
8. Gérer les erreurs lors de l'accès aux fichiers
Il est important de gérer les erreurs lorsque vous travaillez avec des fichiers. Par exemple, le
fichier peut ne pas exister, ou vous pouvez ne pas avoir les permissions nécessaires pour y
accéder.
Vous pouvez utiliser un bloc try-except pour gérer ces erreurs :
try:
with open('exemple.txt', 'r') as fichier:
contenu = fichier.read()
except FileNotFoundError:
print("Le fichier n'existe pas.")
except IOError:
print("Erreur lors de l'ouverture du fichier.")
9. Supprimer un fichier
Si vous souhaitez supprimer un fichier, vous pouvez utiliser la fonction remove() du module
os.
import os
# Supprimer un fichier
os.remove('exemple.txt')
Exercice :
Écrivez un script qui permette de créer et de relire aisément un fichier texte. Votre programme
demandera d'abord à l'utilisateur d'entrer le nom du fichier. Ensuite il lui proposera le choix, soit
d'enregistrer de nouvelles lignes de texte, soit d'afficher le contenu du fichier. L'utilisateur devra
pouvoir entrer ses lignes de texte successives en utilisant simplement la touche <Enter> pour les
séparer les unes des autres. Pour terminer les entrées, il lui suffira d'entrer une ligne vide (c'est-à-
dire utiliser la touche <Enter> seule). L'affichage du contenu devra montrer les lignes du fichier
séparées les unes des autres de la manière la plus naturelle (les codes de fin de ligne ne doivent pas
apparaître).
Exercice :
À partir de deux fichiers préexistants A et B, construisez un fichier C qui contienne alternativement
un élément de A, un élément de B, un élément de A, ... et ainsi de suite jusqu'à atteindre la fin de l'un
des deux fichiers originaux. Complétez ensuite C avec les éléments restants dans l'autre.