在 Python 中使用 os.walk() 进行递归目录遍历
递归地导航目录并列出其内容是 Python 编程中的常见任务。 os.walk() 函数提供了一种高效的方法来实现这一目标。
原始代码
以下代码演示了如何使用 os.walk() 进行导航从根目录到所有子目录并打印其内容:
#!/usr/bin/python import os import fnmatch for root, dir, files in os.walk("."): print(root) print("") for items in fnmatch.filter(files, "*"): print("..." + items) print("")
这段代码有效地列出了当前目录及其子目录的内容,但它不区分目录和文件。
所需的输出
但是,所需的输出需要将目录显示为子文件夹,将文件显示为这些文件夹中的项目:
A ---a.txt ---b.txt ---B ------c.out
修订的代码
为了达到预期的输出,以下修改后的代码使用 os.path.basename() 来获取目录路径:
#!/usr/bin/python import os # traverse root directory, and list directories as dirs and files as files for root, dirs, files in os.walk("."): path = root.split(os.sep) print((len(path) - 1) * '---', os.path.basename(root)) for file in files: print(len(path) * '---', file)
此代码首先使用 os.sep 将路径分割为确定目录级别。然后,它打印目录名称,并带有与其深度相对应的多个破折号,后面是该目录中的文件列表,每个级别都有一个附加破折号。
以上是如何使用 os.walk() 在 Python 中创建可视化结构化目录树?的详细内容。更多信息请关注PHP中文网其他相关文章!