CodeGym /Cours /Python SELF FR /Lecture de données à partir d'un fichier

Lecture de données à partir d'un fichier

Python SELF FR
Niveau 21 , Leçon 1
Disponible

2.1 Lecture de tout le fichier

En Python, il y a plusieurs façons de lire des fichiers texte. Chacune de ces méthodes a ses avantages et convient à différentes situations. Les principales façons de lire des fichiers texte : lecture de tout le contenu, lecture ligne par ligne, lecture en spécifiant le nombre de caractères, etc.

Méthode read() lit tout le contenu du fichier en une seule chaîne.


file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

C'est une façon très simple de lire un fichier — un appel de méthode, et tout le contenu du fichier est dans une chaîne. Cependant, il y a des inconvénients — si le fichier contient, par exemple, 200 Mo de journaux, il sera lent à lire et la mémoire de votre application sera rapidement consommée.

2.2 Lecture de toutes les lignes du fichier

Il y a une alternative au méthode read() — c'est la méthode readlines(). Elle lit également tout le fichier en mémoire en une fois, mais le retourne sous forme de liste de lignes — chaque ligne du fichier sera une ligne distincte de la liste.

La méthode readlines() lit toutes les lignes du fichier et les retourne sous forme de liste de chaînes.


file = open('example.txt', 'r')
lines = file.readlines()
for line in lines:
    print(line.strip())  # strip() supprime les espaces et les caractères de nouvelle ligne inutiles
file.close()

Cette approche peut être utile si vous savez à l'avance que vous devez traiter le contenu du fichier ligne par ligne. Un inconvénient est que cette méthode peut consommer beaucoup de mémoire pour de très gros fichiers, car toutes les lignes sont chargées en mémoire.

2.3 Itération par lignes du fichier

L'objet file possède un itérateur intégré, donc vous pouvez parcourir son contenu avec une boucle for. Cela permet de lire le fichier ligne par ligne, sans charger tout le fichier en mémoire.

Exemple :


file = open('example.txt', 'r')
for line in file:
    print(line.strip())  
file.close()

Cette méthode est plus efficace en termes de mémoire pour les grands fichiers, car les lignes sont lues une par une. Cependant, cela peut être plus difficile à traiter si vous devez revenir à la ligne précédente ou modifier l'ordre de lecture.

Comparons encore une fois cette approche avec la précédente :

Utilisation de l'itérateur Utilisation de la fonction readlines()

file = open('example.txt', 'r')

for line in file:
    print(line.strip())  
                            
file.close()
                

file = open('example.txt', 'r')
            
lines = file.readlines()
for line in lines:
    print(line.strip())  
                        
file.close()
                

Cette méthode est plus simple et plus rapide. Cependant, lorsque vous travaillez sur des projets réels, il peut parfois être plus rapide de charger toutes les données en mémoire et de travailler avec elles directement.

Les méthodes readline() et readlines() sont utilisées pour lire des lignes à partir d'un fichier, mais elles fonctionnent différemment. readline() lit une ligne à la fois, ce qui vous permet de contrôler le processus de lecture et de ne pas charger tout le fichier en mémoire. Cela est pratique lorsque vous devez traiter le fichier ligne par ligne ou lorsque le fichier est trop volumineux pour être entièrement chargé en mémoire.

readlines(), en revanche, lit toutes les lignes du fichier en une seule fois et les retourne sous forme de liste. Cette méthode est pratique si vous devez rapidement obtenir toutes les lignes du fichier pour un traitement ultérieur. Cependant, elle consomme plus de mémoire, surtout pour les gros fichiers, car tout le fichier est chargé en mémoire d'un coup.

En fonction de la tâche, readline() peut être préférable si l'économie de mémoire et le contrôle du processus de lecture sont importants, tandis que readlines() est pratique lorsque vous devez obtenir immédiatement toutes les lignes du fichier pour un traitement.

2.4 Lecture de partie d'un fichier

Si le fichier est trop volumineux, vous pouvez le lire par morceaux. Dans la méthode read(n), vous pouvez passer le paramètre n — le nombre de caractères à lire. Si le fichier contient moins de caractères que n, alors la méthode read() lira simplement le fichier jusqu'à la fin.

Exemple :


file = open('example.txt', 'r')
content = file.read(10)  # Lit les 10 premiers caractères
print(content)
file.close()

C'est pratique pour lire de gros fichiers par morceaux ou pour traiter des blocs de données fixes. Mais cette approche ignore la division du fichier en lignes — les lignes peuvent être coupées en milieu de ligne.

2.5 Lecture du fichier ligne par ligne

Si pour une raison quelconque vous ne voulez pas utiliser l'itérateur, vous pouvez lire le fichier ligne par ligne manuellement. Pour cela, l'objet file dispose de la méthode readline(). Ne pas confondre avec readlines().

La méthode readline() lit une ligne du fichier à la fois.

Exemple :


file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line.strip())
    line = file.readline()
file.close()

Dans cet exemple, nous lisons le contenu du fichier ligne par ligne, jusqu'à ce que la ligne lue soit vide.

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION