On Fri, 2009-12-04 at 12:40 +0100, Daniele Varrazzo wrote: > On Fri, 4 Dec 2009 12:34:15 +0100, Ernesto <e.pica...@unical.it> wrote: > > > 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? > > Perchè apri e chiudi i file ad ogni riga? Ogni volta gli fai flushare il > buffer. Lasciali aperti:
oltre a questo (che cmq porterà i maggiori benefici) potremmo guadagnare qualcosa anche con: 1) aprire il file da 15GB in modalità binaria (utile solo se siamo sotto windows e forse anche sotto mac) 2) provare ad aumentare il buffer dei file (forse più utile quello in scrittura?) 3) se le linee nel file hanno lunghezza fissa non usare il for ma andare di f.read(qualchekb) bye
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python