Lire des Données à Partir d'un Fichier
Maintenant que nous avons créé et écrit dans book.txt, apprenons à lire son contenu. Python offre plusieurs méthodes pour lire des fichiers. Nous allons explorer les plus courantes.
Nous allons continuer à travailler avec le script file_io.py. Vous allez ajouter du code pour lire le fichier que vous venez de créer.
La Méthode read()
La méthode read() lit l'intégralité du contenu d'un fichier et le retourne sous forme d'une seule chaîne de caractères (string).
Ajoutez le code suivant à la fin de votre script file_io.py. Cela fera en sorte que le script écrive d'abord le fichier, puis le relise et affiche son contenu.
## Le code d'écriture de l'étape précédente doit être au-dessus de ceci
print("\n--- Lecture du fichier entier avec read() ---")
with open("book.txt", "r") as f:
content = f.read()
print(content)
Enregistrez le fichier et exécutez-le depuis le terminal :
python ~/project/file_io.py
La sortie inclura désormais le contenu de book.txt affiché sur la console :
--- Reading entire file with read() ---
Bed before bright moonlight,
Suspected to be frost on the ground.
Head held high, gazing at the bright moon,
Head bowed low, thinking of my homeland.
Itérer sur les Lignes
Une manière plus efficace en termes de mémoire pour lire un fichier, surtout s'il est volumineux, est de le traiter ligne par ligne. Vous pouvez le faire en itérant directement sur l'objet fichier dans une boucle for.
Ajoutez maintenant ce bloc de code suivant à file_io.py :
print("\n--- Lecture du fichier ligne par ligne ---")
with open("book.txt", "r") as f:
for line in f:
print(line, end='')
Ici, end='' dans la fonction print() l'empêche d'ajouter un saut de ligne supplémentaire, car chaque line lue depuis le fichier se termine déjà par un caractère de nouvelle ligne (\n).
Enregistrez et exécutez à nouveau le script :
python ~/project/file_io.py
La sortie pour cette section sera identique à celle de la méthode read(), mais le processus sous-jacent est différent, lisant une ligne à la fois.
La Méthode readlines()
La méthode readlines() lit toutes les lignes d'un fichier et les retourne sous forme de liste de chaînes de caractères.
Enfin, ajoutez ce dernier bloc de code à file_io.py :
print("\n\n--- Lecture de toutes les lignes avec readlines() ---")
with open("book.txt", "r") as f:
all_lines = f.readlines()
print(all_lines)
Enregistrez et exécutez le script une dernière fois :
python ~/project/file_io.py
La sortie pour cette section sera une liste Python, où chaque élément est une chaîne de caractères représentant une ligne du fichier :
--- Reading all lines with readlines() ---
['Bed before bright moonlight,\n', 'Suspected to be frost on the ground.\n', 'Head held high, gazing at the bright moon,\n', 'Head bowed low, thinking of my homeland.']
Vous avez maintenant pratiqué les méthodes fondamentales pour écrire dans des fichiers et lire à partir de fichiers en Python.