web-dev-qa-db-fra.com

Python moyen le plus rapide de lire un gros fichier texte (plusieurs Go)

j'ai un gros fichier texte (~ 7 Go). Je cherche s'il existe le moyen le plus rapide de lire un gros fichier texte. J'ai lu sur l'utilisation de plusieurs approches comme lecture morceau par morceau afin d'accélérer le processus.

à l'exemple effbot suggérer

# File: readline-example-3.py

file = open("sample.txt")

while 1:
    lines = file.readlines(100000)
    if not lines:
        break
    for line in lines:
        pass # do something**strong text**

afin de traiter 96 900 lignes de texte par seconde. Autre auteurs suggère d'utiliser islice ()

from itertools import islice

with open(...) as f:
    while True:
        next_n_lines = list(islice(f, n))
        if not next_n_lines:
            break
        # process next_n_lines

list(islice(f, n)) renverra une liste des prochaines lignes n du fichier f. L'utiliser dans une boucle vous donnera le fichier en morceaux de lignes n

27
Gianni Spear
with open(<FILE>) as FileObj:
    for lines in FileObj:
        print lines # or do some other thing with the line...

va lire une ligne à la fois dans la mémoire et fermer le fichier une fois terminé ...

13
Morten Larsen