Python os.path.walk() 方法



Python 的 os.path.walk() 方法用于递归遍历目录树,生成目录路径、目录名称和目录树中的文件名。它允许您迭代指定目录及其子目录中的所有目录和文件。

  • 该方法首先接受顶级目录作为输入。
  • 然后,它开始遍历目录树,从指定的顶级目录开始。
  • 对于遍历过程中遇到的每个目录,该方法都会产生一个包含有关该目录信息的元组。
  • 在生成当前目录的信息后,该方法会递归遍历该目录中找到的每个子目录。
  • 遍历继续进行,直到访问目录树中的所有目录和子目录。
  • 遍历完成后,该方法返回,并且对目录树的迭代停止。
自 Python 3.0 起,os.path.walk() 方法已弃用。相反,您应该在 Python 中使用 os.walk() 进行目录树遍历。

语法

以下是 Python os.path.walk() 方法的基本语法:

os.walk(top, topdown = True, onerror = None, followlinks = False)

参数

此方法接受以下参数:

  • top − 这是表示要从中开始遍历的根目录的字符串。

  • topdown (可选) − 这是一个布尔值,用于确定是自顶向下还是自底向上遍历目录。默认情况下,它设置为 True,这意味着遍历是自顶向下的。

  • onerror (可选) − 这是一个函数,当遍历过程中发生错误时,它会与错误参数一起被调用。默认情况下,它设置为 None。

  • followlinks (可选) − 这是一个布尔值,用于确定是否跟随符号链接。默认情况下,它设置为 False。

返回值

该方法返回一个生成器,它为以 top 为根的目录树中的每个目录生成一个 3 元组 (dirpath, dirnames, filenames)。

示例

在下面的示例中,我们使用 splitunc() 方法将 UNC 路径 "C://Users//Lenovo//Desktop//file.txt" 分割为其 UNC 挂载点和路径的其余部分:

import os
def visit(arg, dirname, names):
    print "Directory:", dirname
    print "Files:", names
os.path.walk("C://Users//Lenovo//Documents//", visit, None)

输出

以下是上述代码的输出:

Directory: C://Users//Lenovo//Documents//
Files: ['desktop.ini', 'Double_doubleToLongBits.html', 'ezyZip.zip', 'file.txt']
Directory: C://Users//Lenovo//Documents//Custom Office Templates
Files: []
os_path_methods.htm
广告