Skip to content Skip to sidebar Skip to footer

Adding Elements To Python Generators

Is it possible to append elements to a python generator? I'm currently trying to get all images from a set of disorganized folders and write them to a new directory. To get the fil

Solution 1:

You are looking for itertools.chain. It will combine multiple iterables into a single one, like this:

>>>import itertools >>>for i in itertools.chain([1,2,3], [4,5,6]):...print(i)... 
1
2
3
4
5
6

Solution 2:

This should do it, where directories is your list of directories:

import os
import itertools

generators = [os.walk(d) for d in directories]
for root, dirs, files in itertools.chain(*generators):
    print root, dirs, files

Solution 3:

def files_gen(topdir='.'):
    for root, dirs, files inos.walk(topdir):
        # ... do some stuff with files
        for f in files:
            yieldos.path.join(root, f)
        # ... do other stuff

for f in files_gen():
    print f

Solution 4:

Like this.

defthreeGens( i, j, k ):
    for x inrange(i):
       yield x
    for x inrange(j):
       yield x
    for x inrange(k):
       yield x

Works well.

Post a Comment for "Adding Elements To Python Generators"