Inserire elementi generatori pitone
Domanda
E 'possibile per aggiungere elementi ad un generatore di pitone?
Al momento sto cercando di ottenere tutte le immagini da un insieme di cartelle disorganizzati e scriverle in una nuova directory. Per ottenere i file, sto usando os.walk (), che restituisce un elenco di file di immagine in una singola directory. Anche se posso fare un generatore di fuori di questo elenco unico, non so come combinare tutti questi elenchi in un unico generatore. Qualsiasi aiuto sarebbe molto apprezzato.
Related:
Soluzione
Questo dovrebbe fare, dove directories
è la vostra lista di directory:
import os
import itertools
generators = [os.walk(d) for d in directories]
for root, dirs, files in itertools.chain(*generators):
print root, dirs, files
Altri suggerimenti
Siete alla ricerca di itertools.chain
. Sarà combinare più iterables in un unico, in questo modo:
>>> for i in itertools.chain([1,2,3], [4,5,6]):
... print i
...
1
2
3
4
5
6
def files_gen(topdir='.'):
for root, dirs, files in os.walk(topdir):
# ... do some stuff with files
for f in files:
yield os.path.join(root, f)
# ... do other stuff
for f in files_gen():
print f
Ti piace questa.
def threeGens( i, j, k ):
for x in range(i):
yield x
for x in range(j):
yield x
for x in range(k):
yield x
funziona bene.