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

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a