[Python] split di file di grandi dimensioni

Giovanni Marco Dall'Olio dalloliogm a gmail.com
Ven 4 Dic 2009 16:18:13 CET


2009/12/4 Massimo Capanni <massimo.capanni a gmail.com>:
> Gawk per Windows funziona discretamente bene.
> Mi ha processato file di 900 mega in pochi secondi liberandomi di
> molto lavoro manuale :)

effettivamente ś, se il problema postato dall'op é per questioni di
lavoro io utilizzerei gawk, senza perdere tempo a implementare
qualcosa che esiste giá :-)
Non sono sicuro ma mi sembra che almeno awk sia installato di default
sui mac. In questo caso il comando diventa semplicemente:
awk '{print $0 > "output_"$3".txt"}' input.txt

Personalmente l'ho utilizzato per problemi simili e su quantitá di
dati simili a quelli della domanda (10, 15 GB) e non ho mai dovuto
aspettare piu' di una ora.

Al massimo, se anche gawk dovesse essere lento, conviene semplificare
il problema alla base, ovvero: splittare il file in pezzi piu' piccoli
(comando split) e correrlo in parallelo, oppure ordinarlo (sort -k),
sempre che non sia importante mantenere l'ordine delle righe
originale.



>
>
> Il 04 dicembre 2009 12.59, Marco Beri <marcoberi a gmail.com> ha scritto:
>> 2009/12/4 Giovanni Marco Dall'Olio <dalloliogm a gmail.com>
>>
>>> Scusami, ma io questo lo farei con gawk (sempre che tu sia su un sistema
>>> unix)
>>>
>>> $: gawk '{print $0 > "output_"$3".txt"}' input.txt
>>>
>>> Per esperienza, i tool unix sono molto piu' veloci di quanto tu possa
>>> fare in python (beh, sono scritti in C o C++)
>>
>> Nel caso pụ provare con cygwin che ha anche lui gawk.
>>
>> Ciao.
>> Marco.
>>
>>
>> --
>> http://ThinkCode.TV - Screencast e videocorsi di programmazione
>> http://stacktrace.it - Aperiodico di resistenza informatica
>> http://beri.it - Blog di una testina di vitello
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



-- 
Giovanni Dall'Olio, phd student
Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it


Maggiori informazioni sulla lista Python