📜  如何使用 Glob()函数在Python中递归查找文件?(1)

📅  最后修改于: 2023-12-03 15:38:00.655000             🧑  作者: Mango

如何使用 Glob() 函数在 Python 中递归查找文件?

在 Python 编程中,常常需要递归查找文件,这时 Glob() 函数就非常实用了。本文将介绍如何使用 Glob() 函数在 Python 中递归查找文件。

什么是 Glob() 函数?

Glob() 函数是 Python 标准库中的一个模块。它可以用来返回一个符合给定规则的文件名列表,比如查找所有以 .py 结尾的文件。Glob() 函数支持通配符,比如 * 匹配任意长度的字符,? 匹配任意单个字符。

如何使用 Glob() 函数递归查找文件?

在 Python 中,如果要递归查找符合规则的文件名,可以使用 os.walkglob.glob 结合的方式。os.walk 可以递归返回一个目录下的所有文件夹和文件,而 glob.glob 可以查找符合规则的文件。

以下是一个示例代码:

import os
import glob

def find_files(path, extension):
    files = []
    for foldername, subfolders, filenames in os.walk(path):
        for filename in glob.glob(os.path.join(foldername, extension)):
            files.append(filename)
    return files

print(find_files('./', '*.txt'))

上述代码中,find_files 函数接受两个参数,分别为要查找的路径和文件名的通配符,返回符合条件的文件名列表。

首先通过 os.walk 得到路径下所有的文件夹和文件,然后通过 glob.glob 查找符合条件的文件。需要注意的是,由于 os.walk 返回的文件名只包含相对路径,需要使用 os.path.join 合并路径再使用 glob.glob 查找。

总结

Glob() 函数是 Python 中一个非常实用的模块,可用于递归查找文件名。要递归查找文件名可以使用 os.walkglob.glob 结合的方式,即先通过 os.walk 得到所有的文件夹和文件,再通过 glob.glob 查找符合条件的文件。