gpt4 book ai didi

python - 如何按顺序获取路径名、子目录名和文件列表?

转载 作者:行者123 更新时间:2023-12-01 01:47:17 25 4
gpt4 key购买 nike

我已经尝试了一段时间,我担心这会被标记为重复,尽管我觉得这不是 Python list directory, subdirectory, and files 的重复。 。此解决方案将其打印为 path/subdirectory/files 的格式。但这不是我需要的。

考虑我的目录的以下结构:

Root

- Directory1
- Files
- Directory2
- Files
- Directory3
- Subdirectory
- Sub-subdirectory1
- Files
- Sub-subdirectory2
- Files
- Sub-subdirectory3
- Files
- Directory4
- Files

对于我的程序,我需要路径的名称,这并不困难。但是,我还需要子目录的名称,我可以使用 for name in subdirs 来实现,但是,我无法获取子目录中文件的名称。这是我尝试过的:

for path, subdirs, files in os.walk(root):
for dirname in subdirs:
print dirname
for filename in os.listdir(path + ‘\\’ + dirname):
print filename

这一直有效,直到我到达子目录,然后它将文件名视为子目录名称。这成为我的程序中的一个问题,因为它导致程序崩溃,我正在从文件中取出信息并将它们转换为 XML 文件。我需要目录名称才能正确命名文件,并为其提供适当的 header 。

我想要以下输出:

 - Directory1
- Files
- Directory2
- Files
- Sub-subdirectory1
- Files
- Sub-subdirectory2
- Files
- Sub-subdirectory3
- Files
- Directory3
- Files

我该如何实现这一目标?

最佳答案

如果您只想打印包含文件的目录:

for path, subdirs, files in os.walk(root):
if files:
print os.path.basename(path)
for filename in files:
print ' ' + filename # spaces are just for indent

如果您还需要空目录,请删除 if files

关于python - 如何按顺序获取路径名、子目录名和文件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51157958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com