[Python] listdir

Lorenzo Sutton lsutton a libero.it
Gio 21 Lug 2011 10:54:21 CEST


Giovanni Marco Dall'Olio wrote:
> 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
Bella idea!
Credo che per avere un comportamento più simile a esempio1 però dovrebbe
essere glob.iglob('*'). Altro problema  potrebbe essere nel caso ci
siano file nascosti di tipo ".nomefile" che glob ignora.

Lorenzo.
> 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
>>
>>
>
>


Maggiori informazioni sulla lista Python