Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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'appeler file.
  • Ensuite, nous appelons la méthode read() sur file.
  • 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.

python-read-file

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éthode seek().

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 fichier f. 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".

python-écriture-au-fichier

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.

  • Bala Priya C
    Auteur
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus