Я пытаюсь использовать питон os.walk для файлов из шарика произвольной структуры каталогов:Python: os.walk() поддерживать иерархию
matches = []
for root, dirnames, filenames in os.walk(path):
for filename in fnmatch.filter(filenames, name):
matches.append(os.path.join(root, filename))
print matches
это красиво комками всех файлов, но я хотел бы также иметь возможность поддерживать фактическую структуру папок, то есть я хотел бы ходить в подпапку вложенной папке, поэтому я действительно знаю, какое имя файла принадлежит какой-либо подпапке. возможно ли это с os.walk или мне придется катить мою собственную функцию?
Чтобы уточнить мой вопрос: я хочу создать внутреннее дерево программы для каталогов, которые я анализирую, поэтому я бы хотел проанализировать дерево каталогов рекурсивным образом, чтобы я мог встретить каждый подкаталог и файл только один раз, т. Е. :
псевдокод:
def createAndParseSubDir(path):
ret = []
files = glob(path)
for file in files:
if isDir(file):
ret.append(createAndParseSubDir(file))
else:
ret.append(file)
return ret
hierarchy = createAndParseSubDir(myRoot)
EDIT: Я закончил с использованием аналогичной рекурсивной функции, как выше псевдокод, чтобы убедиться, что файлы/каталоги обрабатываются в дереве подобным образом.
Принятый ответ на [этот вопрос] [1] решил эту проблему для меня. [1]: http://stackoverflow.com/questions/2909975/python-list-directory-subdirectory-and-files –