os.walk несколько каталогов сразу

Возможный дубликат:
Как присоединиться к двум генераторам в Python?

Есть ли способ в python использовать os.walk для одновременного перемещения нескольких каталогов?

my_paths = [] path1 = '/path/to/directory/one/' path2 = '/path/to/directory/two/' for path, dirs, files in os.walk(path1, path2): my_paths.append(dirs) 

Вышеприведенный пример не работает (поскольку os.walk принимает только один каталог), но я надеялся на более элегантное решение, а не называть os.walk дважды (плюс тогда я могу сортировать его сразу). Благодарю.

4 Solutions collect form web for “os.walk несколько каталогов сразу”

Чтобы обрабатывать многобайтовые итерации как единое целое, используйте itertools.chain :

 from itertools import chain paths = ('/path/to/directory/one/', '/path/to/directory/two/', 'etc.', 'etc.') for path, dirs, files in chain.from_iterable(os.walk(path) for path in paths): 

Используйте itertools.chain() .

 for path, dirs, files in itertools.chain(os.walk(path1), os.walk(path2)): my_paths.append(dirs) 

поскольку никто не упоминал об этом, на этом или другом ссылочном посту:

http://docs.python.org/library/multiprocessing.html

 >>> from multiprocessing import Pool >>> p = Pool(5) >>> def f(x): ... return x*x ... >>> p.map(f, [1,2,3]) 

в этом случае у вас будет список каталогов. вызов на карту вернет список списков из каждого каталога, вы можете затем сгладить его или сохранить результаты сгруппированы

 def t(p): my_paths = [] for path, dirs, files in os.walk(p): my_paths.append(dirs) paths = ['p1','p2','etc'] p = Pool(len(paths)) dirs = p.map(t,paths) 

Другие упомянули itertools.chain .

Также есть возможность просто вложить один уровень еще:

 my_paths = [] for p in ['/path/to/directory/one/', '/path/to/directory/two/']: for path, dirs, files in os.walk(p): my_paths.append(dirs) 
  • os.walk итерации в каком порядке?
  • Как получить прогресс os.walk в python?
  • Python Пакетное преобразование файлов flac
  • Получить список наименьших подкаталогов в дереве
  • Быстрее для oswalk или glob?
  • Использование os.walk () для рекурсивного прохождения каталогов в Python
  • os.walk очень медленный, любой способ оптимизировать?
  • FTP OS.Walk переходит в бесконечный цикл
  • Python - лучший язык программирования в мире.