Pythonジェネレーターに要素を追加することは可能ですか?
現在、整理されていないフォルダーのセットからすべての画像を取得し、それらを新しいディレクトリに書き込もうとしています。ファイルを取得するために、単一のディレクトリ内の画像ファイルのリストを返す os.walk() を使用しています。この単一のリストからジェネレーターを作成することはできますが、これらすべてのリストを単一のジェネレーターに結合する方法はわかりません。どんな助けでも大歓迎です。
関連している:
Pythonジェネレーターに要素を追加することは可能ですか?
現在、整理されていないフォルダーのセットからすべての画像を取得し、それらを新しいディレクトリに書き込もうとしています。ファイルを取得するために、単一のディレクトリ内の画像ファイルのリストを返す os.walk() を使用しています。この単一のリストからジェネレーターを作成することはできますが、これらすべてのリストを単一のジェネレーターに結合する方法はわかりません。どんな助けでも大歓迎です。
関連している:
を探していitertools.chain
ます。次のように、複数の iterable を 1 つに結合します。
>>> import itertools
>>> for i in itertools.chain([1,2,3], [4,5,6]):
... print(i)
...
1
2
3
4
5
6
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
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
このような。
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
うまくいきます。