在 Python 中使用 os.walk() 递归遍历目录:详细指南
简介
Python 的 os.walk() 函数提供了强大的机制递归遍历目录树。它会迭代指定目录中的所有目录和文件,使其成为文件管理和目录探索等任务的重要工具。
问题:自定义目录列表输出
为了演示 os.walk() 的功能,请考虑以下场景:您想要从根目录递归导航并打印目录和文件的自定义列表,包括嵌套
初始代码和 O/P
使用以下代码:
import os import fnmatch for root, dir, files in os.walk("."): print(root) print("") for items in fnmatch.filter(files, "*"): print("..." + items) print("")
您将获得以下输出:
. ...Python_Notes ...pypy.py ...pypy.py.save ...classdemo.py ....goutputstream-J9ZUXW ...latest.py ...pack.py ...classdemo.pyc ...Python_Notes~ ...module-demo.py ...filetype.py ./packagedemo ...classdemo.py ...__init__.pyc ...__init__.py ...classdemo.pyc
但是这个输出不符合想要的格式of:
A ---a.txt ---b.txt ---B ------c.out
解决方案
要自定义输出,需要一种改进的方法。以下代码实现了所需的格式:
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)
说明
此代码使用以下逻辑:
输出
使用此改进的代码,您将获得所需的输出:
A ---a.txt ---b.txt ---B ------c.out
在此输出中,A B 代表目录,a.txt、b.txt、c.out 代表文件。连字符前缀的数量表示每个项目的嵌套级别。
以上是如何自定义 Python os.walk() 函数的输出以创建嵌套目录列表?的详细内容。更多信息请关注PHP中文网其他相关文章!