簡體   English   中英

將元素添加到 python 生成器

[英]Adding elements to python generators

是否可以將元素附加到 python 生成器?

我目前正在嘗試從一組雜亂無章的文件夾中獲取所有圖像並將它們寫入新目錄。 為了獲取文件,我使用 os.walk() 返回單個目錄中的圖像文件列表。 雖然我可以用這個單一的列表制作一個生成器,但我不知道如何將所有這些列表組合成一個單一的生成器。 任何幫助將非常感激。

有關的:

您正在尋找itertools.chain 它會將多個可迭代對象合並為一個,如下所示:

>>> 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

效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM