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 <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 >> >> > > _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python