Вот что я получил до сих пор:
project_dir = '/my/project/dir'
project_depth = len(project_dir.split(os.path.sep))
xml_files = []
for dirpath, dirnames, filenames in os.walk(project_dir):
for filename in fnmatch.filter(filenames, '*.xml'):
dirs = dirpath.split(os.path.sep)[project_depth:]
print(dirs)
xml_files.append(os.path.join(dirpath,filename))
По сути, я хочу выплюнуть структуру моего каталога проекта со всеми файлами XML в виде дерева HTML (используя <ul>
).Я могу получить все файлы таким образом, но я не могу понять, как организовать их в дерево.
С учетом того, как работает os.walk
, я не знаю, когда ушел на более глубокий уровень или все еще перебираю тот же каталог.
for dirpath, dirnames, filenames in os.walk(project_dir):
xml_files = fnmatch.filter(filenames, '*.xml')
if len(xml_files) > 0:
out.write('<li>{0}<ul>'.format(dirpath))
for f in xml_files:
out.write('<li>{0}</li>'.format(f))
out.write('</ul></li>')
out.write('</ul>')
Это дает мне список каталогов и всех файлов под ними, но я все еще не могу понять, как разделить путь к каталогу, чтобы он тоже был вложенным.