إضافة عناصر إلى مولدات بيثون
سؤال
هل من الممكن إلحاق العناصر إلى مولد ثعبان؟
أحاول حاليا الحصول على جميع الصور من مجموعة من المجلدات غير المنظمة وكتابةها إلى دليل جديد. للحصول على الملفات، أنا أستخدم 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
يعمل جيدا.
لا تنتمي إلى StackOverflow