Comment lire des lignes spécifiques d'un fichier en Python
-
fileobject.readlines()
pour lire les lignes spécifiques d’un fichier de petite taille -
for
boucle dansfileobject
pour lire des lignes spécifiques en Python -
Module
linecache
pour lire les lignes spécifiques en Python -
enumerate
lors de la lecture de lignes spécifiques d’un gros fichier en Python
Une façon courante de lire un fichier en Python est de le lire complètement et de traiter ensuite la ligne spécifique. La lecture d’un fichier en Python est rapide, par exemple, il faut environ 0,67 secondes pour écrire un fichier de 100MiB. Mais si la taille du fichier dépasse 100 Mo, cela entraînerait des problèmes de mémoire lors de sa lecture.
Python a 3 méthodes intégrées pour lire les lignes spécifiques d’un fichier, comme présenté dans les sections suivantes.
fileobject.readlines()
pour lire les lignes spécifiques d’un fichier de petite taille
fileobject.readlines()
lit tout le contenu du fichier en mémoire. Il peut utiliser le découpage en listes pour lire les lignes spécifiques.
Si nous avons seulement besoin de lire la ligne 10,
with open("file.txt") as f:
data = f.readlines()[10]
print(data)
Si nous avons besoin de lire des lignes de 10 à 100,
with open("file.txt") as f:
data = f.readlines()[10:100]
print(data)
for
boucle dans fileobject
pour lire des lignes spécifiques en Python
for line in fileobject
est également une solution rapide pour les petits fichiers.
lines = [10, 100]
data = []
i = 0
with open("file.txt", "r+") as f:
for line in f:
if i in lines:
data.append(line.strip)
i = i + 1
print(data)
Module linecache
pour lire les lignes spécifiques en Python
Le linecache
permet de lire de nombreux fichiers, éventuellement de manière répétée ou d’extraire de nombreuses lignes:
import linecache
data = linecache.getline("file.txt", 10).strip()
La méthode de chaîne de caractères strip()
retourne une chaîne qui supprime les espaces blancs aux deux extrémités.
Le module linecache
vous permet d’obtenir n’importe quelle ligne d’un fichier source python tout en utilisant le cache pour une optimisation interne, ce qui est une pratique courante de lecture de plusieurs lignes d’un même fichier. Le module “traceback” l’utilise pour récupérer les lignes sources contenues dans le traceback formaté.
enumerate
lors de la lecture de lignes spécifiques d’un gros fichier en Python
Lors de la lecture de fichiers, un fichier volumineux peut causer des problèmes tels qu’il ne peut pas être mis en mémoire. Dans ce cas, nous pourrions utiliser enumerate()
:
with open("file.txt") as f:
for i, line in enumerate(f):
pass # process line i
Notez que pour la n
-ième ligne, i = n-1
.
La fonction enumerate()
est utilisée pour combiner un objet de données traversable (tel qu’une liste, un n-uplet ou une chaîne) en une séquence d’index, listant les données et les indices de données en même temps, ce qui est généralement utilisé dans la boucle for
.