os.walk() 是一个非常有用的函数,用于在Python中遍历文件夹树。它返回一个生成器,该生成器在每次迭代时返回一个包含三个元素的元组:(当前文件夹的路径,文件夹中的子文件夹的列表,文件夹中的文件的列表)。这个函数对于递归地操作文件系统,如查找、文件重命名或移动文件特别有用。

下面是一个 os.walk() 的使用例子:

import os

for root, dirs, files in os.walk('..', topdown=True):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

参数说明:

  • root:当前正在遍历的文件夹的路径。
  • dirs:当前root文件夹中所有的子文件夹组成的列表。
  • files:当前root文件夹中所有的非目录文件组成的列表。

选项参数说明:

  • topdown(可选):设置为 True(默认)时,walk 会以自顶向下的方式遍历子文件夹;如果设置为 False,则会自底向上遍历。
  • onerror(可选):一个为一个产生器(或者一个函数),当一个错误发生时,它可以被调用;默认 None。
  • followlinks(可选):设置为 True 时,os.walk() 会在遍历到符号链接时继续跟踪,直到遇到一个非符号链接的目录;默认 False。

请注意,os.walk() 不保证遍历的顺序。如果需要按特定的顺序遍历文件系统,应当在遍历时手动排序 dirs 和 files 列表。

使用 os.walk() 时需要注意,由于它是自顶向下的,它会对每个目录访问多次,一旦访问了其子文件夹,同时它也不会跳过任何子目录,因此不适用于大文件夹的遍历。

os.walk() 是一个非常有用的功能,使得在Python中对文件系统进行复杂的操作成为可能。

07-06 02:48