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 <bir...@gmail.com>:
> 2011/7/21 Filadelfo Fiamma <philosga...@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@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
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a