Dans tout langage de programmation, la gestion des fichiers est un aspect important. Python permet également de travailler avec des fichiers dans différents modes, tels que la lecture et l'écriture dans des fichiers, et plus encore.
A la fin de ce tutoriel, vous serez capable de :
- ouvrir et lire des fichiers en Python,
- lire des lignes d'un fichier texte,
- écrire et ajouter à des fichiers, et
- utiliser les gestionnaires de contexte pour travailler avec des fichiers en Python.
Comment lire un fichier en Python
Pour ouvrir un fichier en Python, vous pouvez utiliser la syntaxe générale : open('nom_de_fichier', 'mode')
.
- Ici,
nom_de_fichier
est le nom du fichier.
Remarque : si le fichier que vous souhaitez ouvrir se trouve dans le répertoire de travail actuel, vous ne pouvez mentionner que le nom du fichier. S'il se trouve dans un autre dossier de votre environnement de travail, vous devez inclure le chemin d'accès au fichier.
- Le paramètre
mode
indique le mode dans lequel vous souhaitez ouvrir le fichier.
Le mode par défaut pour l'ouverture d'un fichier est la lecture, indiquéepar la lettre
"r"
. Toutefois, il est recommandé de spécifier le mode de manière explicite.
Avant de commencer, examinons le fichier lib.txt
, que nous utiliserons dans cet exemple.
📁 Téléchargez le fichier texte et le code utilisé dans ce tutoriel à partir de ce repo GitHub.

L'extrait de code ci-dessous montre comment vous pouvez ouvrir un fichier texte 'lib.txt'
en Python à l'aide de la fonction open()
, et lire son contenu.
file = open('lib.txt','r')
contents = file.read()
print(contents)
file.close()
# Output
Hello, there !
Voici quelques bibliothèques Python utiles :
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels
Dans l'exemple ci-dessus,
- La fonction
open()
renvoie un objet fichier, et nous choisissons de l'appelerfile
. - Ensuite, nous appelons la méthode
read()
surfile
. - La variable
contents
contient maintenant le contenu du fichier. Nous l'imprimons. - Enfin, nous fermons le fichier.
Cependant, si vous oubliez de fermer le fichier, vous risquez de gaspiller des ressources. Si vous travaillez avec un grand nombre de fichiers de ce type, la mémoire peut être fortement sollicitée. Cela s'explique par le fait que vous avez ouvert plusieurs fichiers, mais que vous n'en avez fermé aucun.
Maintenant, apprenons une meilleure façon d'ouvrir des fichiers en utilisant lesgestionnaires de contexte de . L'extrait de code ci-dessous montre comment vous pouvez les utiliser.
with open('lib.txt', 'r') as f :
contents = f.read()
print(contents)
Lorsque vous utilisez les gestionnaires de contacts pour travailler avec des fichiers, vous ne devez pas utiliser la méthode close()
. Les fichiers sont automatiquement fermés une fois l'opération d'E/S terminée.
Comment lire les lignes d'un fichier en Python ?
Dans notre exemple de fichier texte, nous n'avions que quelques lignes. Lire tout le contenu du fichier en une seule fois n'était donc pas un problème.

Cependant, lorsque vous devez lire des fichiers volumineux, l'utilisation de la méthode read()
, comme indiqué ci-dessus, peut ne pas être très efficace.
En fait, si le fichier texte est très volumineux, vous risquez de manquer rapidement de mémoire. C'est pourquoi vous pouvez vouloir lire des lignes en lecture seule à partir d'un fichier texte, et vous apprendrez à le faire dans cette section.
Utilisation de la méthode readline() de Python pour lire les lignes d'un fichier
La méthode readline()
lit une ligne à la fois, à partir du fichier.
Exécutez l'extrait de code suivant.
with open('lib.txt', 'r') as f :
line = f.readline()
print(line)
line = f.readline()
print(line)
# Output
Hello, there !
Voici quelques bibliothèques Python utiles :
Vous pouvez voir qu'après le premier appel à la méthode readline()
, la première ligne du fichier est imprimée. Le deuxième appel à la méthode readline()
renvoie la deuxième ligne du fichier.
En effet, après le premier appel de la méthode, le pointeur de fichier se trouve au début de la deuxième ligne.
En Python, vous pouvez utiliser la méthode
tell()
pour obtenir l'emplacement actuel du pointeur de fichier. Et pour déplacer le pointeur de fichier vers un emplacement spécifique, vous pouvez utiliser la méthodeseek()
.
Dans l'extrait de code ci-dessous, nous utilisons f.seek(0)
après le premier appel de méthode. Cela déplace le pointeur de fichier au début du fichier texte. C'est pourquoi, à chaque fois, la première ligne du fichier est imprimée.
with open('lib.txt', 'r') as f :
line = f.readline()
print(line)
f.seek(0)
line = f.readline()
print(line)
# Output
Hello, there !
Hello, there !
Utilisation de la méthode readlines() de Python pour lire les lignes d'un fichier
Il existe une autre méthode très proche appelée readlines()
.
Lorsque vous exécutez l'extrait de code suivant, vous constatez que la méthode readlines()
renvoie une liste de toutes les lignes du fichier.
with open('lib.txt', 'r') as f :
lines = f.readlines()
print(lines)
# Output
['Hello, there !\N', 'Voici quelques bibliothèques Python utiles :\N',
'1) NumPy\N', '2) pandas\N', '3) matplotlib\N',
'4) seaborn\N', '5) scikit-learn\N', '6) BeautifulSoup\N',
'7) Scrapy\N', '8) nltk\N', '9) Bokeh\N', '10) statsmodels\N', '\N']
Utilisation de la boucle for de Python pour lire les lignes d'un fichier
Pour lire les lignes d'un fichier texte, vous pouvez également utiliser la boucle for
.
Une fois que vous disposez d'un objet fichier, vous pouvez utiliser la boucle for
pour parcourir le contenu du fichier, une ligne à la fois, et l'imprimer, comme illustré ci-dessous. Remarquez que nous n'accédons qu'à une ligne à la fois et que nous ne lisons pas tout le contenu du fichier.
with open('lib.txt', 'r') as f :
for line in f :
print(line, end='')
Remarque: lorsque vous utilisez la fonction
print()
de Python, le séparateur par défaut est une nouvelle ligne - le caractère"\n
". Mais dans le fichier original, nous n'avons pas ces nouvelles lignes. Définissez donc l'argument du séparateur comme une chaîne vide :end = ''
afin d'imprimer le contenu du fichier tel qu'il est.
Comment lire des morceaux de contenu à partir d'un fichier en Python ?
En Python, vous pouvez également choisir de lire le contenu du fichier par petits morceaux.
Lisez le code ci-dessous :
- Ici, nous avons fixé la
taille du morceau
à50
. Cela signifie que les 50 premiers caractères du fichier seront lus et que nous les imprimerons.
- Appelez maintenant la méthode
tell()
sur l'objet fichierf.
Vous pouvez voir que le pointeur de fichier est maintenant à la position 51, ce qui est normal.
chunk_size = 50
with open('lib.txt', 'r') as f :
chunk = f.read(chunk_size)
print(chunk)
current = f.tell()
print(f "Position actuelle du pointeur de fichier : {current}")
# Output
Hello, there !
Voici quelques bibliothèques Python utiles
Position actuelle du pointeur de fichier : 51
Vous pouvez également utiliser cette technique pour lire l'intégralité d'un fichier par petits morceaux.
L'extrait de code suivant montre comment procéder.
chunk_size = 50
with open('lib.txt', 'r') as f :
chunk = f.read(chunk_size)
print(chunk,end='')
while(len(chunk)>0) :
chunk = f.read(chunk_size)
print(chunk,end='')
# Output
Hello, there !
Voici quelques bibliothèques Python utiles :
1) NumPy
2) pandas
3) matplotlib
4) seaborn
5) scikit-learn
6) BeautifulSoup
7) Scrapy
8) nltk
9) Bokeh
10) statsmodels
Ici, nous utilisons une boucle while
pour lire le contenu du fichier. Nous lisons le contenu du fichier par morceaux de taille 50 jusqu'à ce que nous atteignions la fin du fichier. ✅
Comment écrire dans un fichier en Python
Pour écrire dans un fichier texte en Python, vous devez l'ouvrir en mode écriture en spécifiant "w"
.

L'extrait de code ci-dessous montre comment procéder.
with open('nouveau_fichier.txt', 'w') as f :
f.write('Hello, Python!')
Vous verrez que le fichier 'new_file.txt'
a été créé dans votre répertoire de travail.
Maintenant, exécutez à nouveau la cellule de code ci-dessus.
Dans votre terminal, exécutez la commande suivante :
cat nouveau_fichier.txt
# Sortie : Bonjour, Python !
Idéalement, nous avons écrit deux fois dans le fichier. Hello, Python !
aurait donc dû être imprimé deux fois, n'est-ce pas ?
Mais vous verrez qu'il n'a été imprimé qu'une seule fois. En effet, lorsque vous ouvrez un fichier en mode écriture(w
), vous écrasez le contenu du fichier avec un nouveau contenu.
Si vous souhaitez ajouter du contenu à la fin du fichier sans écraser le contenu existant, vous devez ouvrir le fichier en mode ajouter. Vous verrez comment procéder dans la section suivante.
Comment ajouter des données à un fichier en Python
Si vous souhaitez ajouter du contenu à un fichier sans l'écraser, ouvrez-le en mode ajouter.
Pour ce faire, utilisez `'a'
-a verser append etspécifiez explicitement le mode.
Ensuite, exécutez deux fois la cellule de code suivante.
with open('nouveau_fichier.txt', 'a') as f :
f.write('Hello, Python!')
Remarquez que le texte est imprimé deux fois maintenant, car nous l'avons ajouté au fichier.
cat nouveau_fichier.txt
# Sortie : Bonjour, Python!Bonjour, Python !
Conclusion
Résumons rapidement ce que nous avons vu dans ce tutoriel.
- Vous avez appris les opérations d'E/S de fichiers courants telles que la lecture, l'écriture et l'ajout à un fichier.
- De plus, vous avez également appris à utiliser la méthode seek() pour déplacer le pointeur de fichier à une position spécifique, et à utiliser la méthode tell() pour déplacer le pointeur de fichier à une position spécifique, et à déplacer le pointeur de fichier à une position spécifique
- comment utiliser la méthode dire( ) pour récupérer la position actuelle du pointeur de fichier.
J'espère que ce tutoriel vous a été utile. Maintenant que vous avez appris à travailler avec des fichiers texte en Python, apprenez à travailler avec des fichiers JSON en Python.
Voir aussi :
Vérifiez la longueur d'une liste en Python en 3 étapes.