Я использую os.walk(), чтобы проверить каталог для избыточных файлов и перечислить их. Псевдо-код выглядит примерно так:os.walk iteration not walking in Python
def checkPath(path):
do the for dirname, dirnames, filenames in os.walk(path) thing here...
pathList = ["path1", "path2"]
for each in pathList:
checkPath(each)
Так это работает отлично первый пробегают, я получаю все, как и ожидалось, но на следующий os.walk на втором пути он просто пропускает прямо на счет .. . Нет ничего в dirname, dirnames, filenames. Я сделал некоторые заявления для печати, чтобы проверить все, и он входит в функцию, но ничего не делает для части os.walk().
перед тем, как сделать часть os.walk() функцией, чтобы определить, устранит ли она проблему, она была в петле цикла, соединенной с основным корпусом. Когда я попробовал (просто для удовольствия) очистить имя dirname, dirnames, filenames variables с del, на втором пути, когда пришла очистка, он сказал, что имя переменной dirname не существует ...
Так что, похоже, в функции или нет, последовательные итерации os.walk() arent populating ...
идеи?
Спасибо!
Чтобы добавить рабочий код в качестве примера, примерно так. Это действительно не имеет значения, что он делает, просто пытается получить os.walk ходить мульт пути:
import os
def checkPath(path):
for dirname, dirnames, filenames in os.walk(path):
for filename in filenames:
print filename
pathList = ["c:\temp\folder1", "c:\temp\folder2"]
for path in pathList:
checkPath(path)
print "done"
Это может быть сделано таким образом (пытается увидеть, если вы звоните os.walk по-другому , как один из других комментаторов предположил, может помочь), или это может быть сделано рядный, что работает, очевидно ...
Еще раз спасибо всем,
Каков путь, который он пропускает? – thegrinner
Показать какой-то * рабочий код *, который демонстрирует вашу проблему ... – Bakuriu
Пути простые, локальные папки тестовых данных (электронные таблицы, документы и т. Д.). pathList = ["c: \ temp \ folder1", "c: \ temp \ folder2"]. Каждая из этих папок имеет подпапки с несколькими файлами в них. В этом случае он обрабатывает первую папку, переходит во вторую папку, но os.walk, похоже, ничего не дает в именах файлов, dirnames, filenames variables ... – user1229108