利用 Python 的 os.walk() 进行递归目录探索
在 Python 中,递归遍历目录对于文件管理等任务来说是一项至关重要的任务和目录操作。多功能的 os.walk() 函数为此目的提供了一个强大的解决方案。
导航目录时,区分文件和目录通常很重要。然而,os.walk() 函数以不同的方式呈现数据。为了解决这个问题,需要利用额外的工具。
为了举例说明这一点,请考虑以下代码片段:
import os import fnmatch for root, dir, files in os.walk("."): print(root) print("") for items in fnmatch.filter(files, "*"): print("..." + items) print("")
执行时,此代码将打印当前目录的结构,然后是每个目录中的文件。然而,这种结构与所需的格式不一致,其中文件和目录被明确区分。
为了实现所需的输出,需要使用稍微修改的 os.walk() 实现的替代方法:
import os 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)
此修改后的代码将根目录路径划分为各个组件(路径),并计算组件的数量以确定当前目录的深度。然后使用该深度来缩进目录名称和其中的文件,以实现正确的可视化。因此,最终输出反映了目录和文件明确隔离的分层表示。
以上是使用Python的os.walk()函数时如何有效区分文件和目录?的详细内容。更多信息请关注PHP中文网其他相关文章!