[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