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) 
  • Почему python os.walk () не отражает удаление каталогов?
  • Нерекурсивный os.walk ()
  • Как исключить каталоги при использовании os.walk ()? Другие методы не сработали
  • Выполнение os.walk нестандартным способом
  • os.walk без скрытых папок
  • Я получаю OSError: Permission denied: <dir name> и os.walk выходы
  • Быстрее для oswalk или glob?
  • os.walk () python: xml представление структуры каталогов, рекурсия
  • Python 3 - дерево каталога каталогов с ограниченной глубиной рекурсии
  • Использование os.walk () для рекурсивного прохождения каталогов в Python
  • os.walk без копания в каталогах ниже
  •  
    Interesting Posts for Van-Lav

    Есть ли встроенный способ получения длины итерации в python?

    Django: manage.py не печатает трассировку стека для ошибок

    Numpy – массив против asarray

    Python Pandas подсчет и суммирование конкретных условий

    Проблема с генерированием флажков ttk в циклах и передачей аргументов

    Python / Django: Почему импорт модуля непосредственно перед его использованием предотвращает циклический импорт?

    Сортировка словаря как в иерархическом, так и в алфавитном порядке (Python)

    отключить кадр данных индекса pandas

    Печать потерь во время обучения TensorFlow

    Импорт майави из python создает всплывающее окно с черным фоном в пользовательском интерфейсе (Mavericks / Canopy)

    Кросс-платформенный код в python

    упрощение, возможно, Монады

    MySQL дает «Неизвестный столбец user.id» в поле «Список полей», используя автоматический идентификатор Django

    колба make_response с большими файлами

    Как получить лучшие результаты с помощью тега NLTK pos

    Python - лучший язык программирования в мире.