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:

# NON TESTATO

files = {}
for c in "ABC:
    files[c] = open(c + ".txt","a")

f=open(infile)
for i in f:
    l=(i.strip()).split("\t")
    files[l[2]].write(i)

f.close()
for f in files.values():
    f.close()


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a