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: []
Files: ['desktop.ini', 'Double_doubleToLongBits.html', 'ezyZip.zip', 'file.txt']
Directory: C://Users//Lenovo//Documents//Custom Office Templates
Files: []