您的位置:

Python os.walk:遍历文件夹,查找文件和文件夹

一、遍历文件夹

Python os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

我们可以通过此方法来实现遍历某个指定文件夹,将文件夹中的所有文件和子文件夹名称输出,代码示例:

import os

def traverse(folder_path):
    for root, dirs, files in os.walk(folder_path):
        for dir in dirs:
            print(os.path.join(root, dir))
        for file in files:
            print(os.path.join(root, file))

folder_path = "C:/Users/Administrator/Desktop/test"
traverse(folder_path)

os.walk() 方法会包含当前文件夹(根目录)以及当前文件夹下的所有子文件夹。for 循环遍历 root,dirs,files,分别获取当前文件夹、子文件夹以及文件名列表。

os.path.join() 方法用于将文件路径和文件名组合起来。这里使用两个 for 循环遍历根目录下的所有子文件夹和文件,输出完整的路径。

二、查找文件

os.walk() 可以通过设置过滤条件,进行查找指定文件名的操作。

代码示例:

import os

def searchFile(folder_path, file_name):
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            if file == file_name:
                print(os.path.join(root, file))

folder_path = "C:/Users/Administrator/Desktop/test"
file_name = "test.txt"
searchFile(folder_path, file_name)

通过设置一个 file_name 变量,来确定需要查找的文件名,再使用 if 判断语句来判断当前文件名是否和查找的文件名相同。

三、查找文件夹

与查找文件类似,使用 os.walk() 方法同样可以查找指定的文件夹。

代码示例:

import os

def searchFolder(folder_path, folder_name):
    for root, dirs, files in os.walk(folder_path):
        for dir in dirs:
            if dir == folder_name:
                print(os.path.join(root, dir))

folder_path = "C:/Users/Administrator/Desktop/test"
folder_name = "sub_folder"
searchFolder(folder_path, folder_name)

与查找文件相同,先设置一个变量 folder_name,再使用 if 判断语句来判断当前文件夹名称是否和需要查找的文件夹名称相同。

四、总结

Python os.walk() 方法可以方便地遍历整个文件夹的所有文件和子文件夹,同时也可以根据条件进行查找指定的文件和文件夹。

以上是 os.walk() 方法使用的基础示例,我们还可以在实际开发中根据自己的需求进行更复杂的操作,如筛选出指定格式的文件等。