[Python] listdir
Giovanni Marco Dall'Olio
dalloliogm a gmail.com
Gio 21 Lug 2011 09:54:33 CEST
Puoi usare glob.iglob, che ritorna un iteratore e non una lista.
# esempio1:
for filename in os.listdir('.'):
print filename
# esempio2:
for filename in glob.iglob('.'):
print filename
la differenza tra esempio1 e esempio2 č che nel primo viene generata
tutta la lista dei file nella directory (occupando memoria), mentre in
esempio2 viene preso un file alla volta (con una occupazione di
memoria minima).
2011/7/21 Marco Mariani <birbag a gmail.com>:
> 2011/7/21 Filadelfo Fiamma <philosganga a gmail.com>
>
>> avrei una curiositā:
>> esiste il modo di limitare il numero di elementi trovati da
>> os.listdir? Se ho una cartella contenente 2 milioni d files,
>
> Comunque se hai una cartella cosi', tutti i programmi che ne fanno uso
> avranno vantaggio dividendola in uno o due livelli di sottocartelle
> possibilmente di dimensione confrontabile. Cosi' fanno i programmi che
> devono gestire milioni di file di cache.
>
> Se i file non vengono rinominati, una buona idea potrebbe essere usare, come
> nome delle sottocartelle, la prima parte dell'md5 del nome dei file che
> andranno a contenere.
>
>
>
> _______________________________________________
> 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