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:

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top