您的位置:

Python如何遍历文件夹下所有文件

一、os.walk函数的用法

import os

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

walk_dir("path/to/dir")

os.walk是Python中用于遍历文件夹的函数,它会返回三元tuple,包括当前文件夹路径、当前文件夹下子文件夹列表,以及当前文件夹下所有文件列表。可以通过它来遍历整个文件夹。

在上述代码中,我们通过os.walk函数遍历了"path/to/dir"文件夹下的所有文件,并输出了它们的完整路径。循环中的第一个参数为当前文件夹的路径,第二个参数为当前文件夹下子文件夹列表,第三个参数为当前文件夹下所有文件列表。

二、递归函数的用法

import os

def traverse_dir(path):
    for file_name in os.listdir(path):
        abs_path = os.path.join(path, file_name)
        if os.path.isdir(abs_path):
            traverse_dir(abs_path) # 如果是文件夹,则递归调用自己
        else:
            print(abs_path)

traverse_dir("path/to/dir")

除了使用os.walk函数,我们还可以使用递归函数来遍历文件夹。递归函数是一种自我调用的函数,可以用来处理一些需要重复执行相同操作的问题。

上述代码中,我们定义了一个名为traverse_dir的函数,并传入当前文件夹的路径。函数中定义了一个for循环,用于遍历当前文件夹下的所有文件名。如果文件名对应的是一个文件夹,则递归调用自身,继续遍历子文件夹;否则,输出文件的完整路径。

三、glob模块的用法

import glob

files = glob.glob("path/to/dir/*.*")

for file_name in files:
    print(file_name)

glob.glob函数可以用来匹配文件路径,并返回符合条件的文件列表。通配符*可以代替任意长度的字符,比如*.*代表任意文件名,*.txt代表所有txt文件。

上述代码中,我们使用glob.glob函数获取"path/to/dir"文件夹下所有文件的路径,并输出它们的完整路径。

四、总结

以上三种方法都可以实现遍历文件夹下所有文件的功能。os.walk函数是Python自带的遍历文件夹函数,使用起来比较方便,但在特定情况下会比较慢。递归函数可以自定义遍历文件夹的方式,但需要考虑到递归深度和文件夹嵌套的情况。glob模块可以用来匹配符合条件的文件,较适合于对文件类型有要求的情况。选择何种方法取决于实际需求。