这是我目前的结果:
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))
基本上,我想做的是以 HTML 树(使用 <ul>)的形式输出我的项目目录结构及其所有 XML 文件。我可以通过这种方式获取所有文件,但似乎无法弄清楚如何将它们组织成树形结构。
由于这种 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>')
这让我得到了一个目录列表和它们下面的所有文件,但我仍然无法弄清如何分割目录路径,使其成为嵌套的。
 等东西而不是<ul>,但知道它有一个 HTML 选项仍然很好 :-) - mpen