Je suis en train de lire un gros fichier csv (environ 100 millions de lignes), en utilisant une commande similaire à celle décrite dans https://docs.python.org/2/library/csv.html. :Lire plus rapidement dans le fichier csv
import csv
with open('eggs.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
process_row(row)
Cela se révèle assez lent, je pense que chaque ligne est lu individuellement (nécessitant beaucoup d'appels de lecture sur le disque dur). Est-il possible de lire tout le fichier csv en même temps, puis de le parcourir? Bien que le fichier lui-même soit de grande taille (par exemple 5 Go), mon ordinateur dispose de suffisamment de RAM pour le conserver en mémoire.
Ce code ne lit pas le fichier une ligne à la fois. L'entrée est lue dans des tampons de taille appropriée. –
Il est plus probable qu'il soit lent à cause de l'utilisation de la RAM. Un fichier de 5 Go prend probablement beaucoup plus de 5 Go de RAM après l'analyse. – zvone
Oui - il s'est avéré qu'il a rapidement utilisé 26gb de RAM, avant que mon appareil ne tombe en panne! Leçon apprise ... – kyrenia