[Python] split di file di grandi dimensioni
Ernesto
e.picardi a unical.it
Ven 4 Dic 2009 12:34:15 CET
Ciao a tutti,
sono alle prese con uno script che deve effettuare lo split di un
grosso file di circa 15 GB in un set di file di output.
Premetto che le righe presenti nel file devono essere indirizzate ad
uno specifico file di output in accordo all'informazione che portano.
Mi spiego meglio. Ogni riga del file (testuale) contiene una serie di
campi separati da tabulazione del tipo:
Nome\tinfo1\tA\tinfo2\n
Nome\tinfo1\tB\tinfo2\n
Nome\tinfo1\tC\tinfo2\n
Quello che devo fare è leggere il file riga per riga, considerare il
valore terzo campo (A,B o C) e scrivere la riga ad uno specifico.
Per ora il modo più semplice che ho trovato è:
import os
f=open(infile)
for i in f:
l=(i.strip()).split("\t")
out=open(l[2]+".txt","a")
out.write(i)
out.close()
f.close()
Lanciato su un file di 15GB il tempo necessario per completare il
tutto è superiore ai 2 giorni.
C'è un modo per velocizzare il processo?
Grazie,
Ernesto
Maggiori informazioni sulla lista
Python