Python os.path.walk() 方法



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

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

语法

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


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

参数

此方法接受以下参数 -

  • top −这是一个字符串,表示要从中开始遍历的根目录。
  • topdown(可选)-这是一个布尔值,用于确定是以自上而下还是自下而上的方式遍历目录。默认情况下,它设置为 True,这意味着遍历是自上而下的。
  • onerror(可选)-这是一个在遍历过程中发生错误时使用 error 参数调用的函数。默认情况下,它设置为 None。
  • followlinks (可选) -这是一个布尔值,用于确定是否遵循符号链接。默认情况下,它设置为 False。

返回值

该方法返回一个生成器,该生成器为目录树中以顶部为根的每个目录生成一个 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: []