向python生成器添加元素
是否可以将元素附加到python生成器中 我目前正试图从一组杂乱无章的文件夹中获取所有图像,并将它们写入一个新目录。要获取这些文件,我使用os.walk()返回单个目录中的图像文件列表。虽然我可以从这个列表中生成一个生成器,但我不知道如何将所有这些列表合并到一个生成器中。任何帮助都将不胜感激 相关的:向python生成器添加元素,python,append,generator,Python,Append,Generator,是否可以将元素附加到python生成器中 我目前正试图从一组杂乱无章的文件夹中获取所有图像,并将它们写入一个新目录。要获取这些文件,我使用os.walk()返回单个目录中的图像文件列表。虽然我可以从这个列表中生成一个生成器,但我不知道如何将所有这些列表合并到一个生成器中。任何帮助都将不胜感激 相关的: 像这样 def threeGens( i, j, k ): for x in range(i): yield x for x in range(j):
-
像这样
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
效果很好 您正在寻找的。它将多个iterables合并为一个iterables,如下所示:
>>> import itertools
>>> for i in itertools.chain([1,2,3], [4,5,6]):
... print(i)
...
1
2
3
4
5
6
这应该可以做到,其中
目录
是您的目录列表:
import os
import itertools
generators = [os.walk(d) for d in directories]
for root, dirs, files in itertools.chain(*generators):
print root, dirs, files
itertools.chain(range(i)、range(j)、range(k))
@j.F.Sebastian:range是os.walk(…)。如何在os.walk
的上下文中使用chain
?@j.F.Sebastian:chain(os.walk(“.”),其他\u生成器)
从iterable(imap(os.walk,目录)开始使用
import os
import itertools
generators = [os.walk(d) for d in directories]
for root, dirs, files in itertools.chain(*generators):
print root, dirs, files