سؤال

هل من الممكن إلحاق العناصر إلى مولد ثعبان؟

أحاول حاليا الحصول على جميع الصور من مجموعة من المجلدات غير المنظمة وكتابةها إلى دليل جديد. للحصول على الملفات، أنا أستخدم OS.Walk () التي ترجع قائمة ملفات الصور في دليل واحد. في حين أستطيع أن أجعل مولد من هذه القائمة الفردية، لا أعرف كيفية الجمع بين كل هذه القوائم في مولد واحد واحد. أي مساعدة سيكون محل تقدير كبير.

متعلق ب:

هل كانت مفيدة؟

المحلول

هذا يجب أن تفعل ذلك، حيث 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

نصائح أخرى

أنت تبحث عن itertools.chain. وبعد ستجمع بين العديد من القراريات في واحدة واحدة، مثل هذا:

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

مثله.

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 مع الإسناد
لا تنتمي إلى StackOverflow
scroll top