欢迎访问宙启技术站
智能推送

利用glob2和glob()在Python中批量处理文件

发布时间:2023-12-24 14:35:59

在Python中,我们可以利用glob2和glob()模块来批量处理文件。这两个模块都提供了用于查找文件的函数,但它们有一些不同之处。下面是有关如何在Python中使用glob2和glob()的示例:

使用glob()模块:

import glob

# 查找当前目录下的所有txt文件
txt_files = glob.glob('*.txt')

# 输出找到的文件列表
for file in txt_files:
    print(file)

上述代码中,glob.glob('*.txt')表示查找当前目录下所有以.txt为扩展名的文件。该函数返回一个列表,其中包含符合条件的文件的路径名。然后我们可以使用for循环遍历这个列表并打印出所有找到的文件。

使用glob2模块:

import glob2

# 查找当前目录及其子目录下的所有txt文件
txt_files = glob2.glob('**/*.txt')

# 输出找到的文件列表
for file in txt_files:
    print(file)

上述代码中,glob2.glob('**/*.txt')表示查找当前目录及其子目录下所有以.txt为扩展名的文件。**/的意思是递归搜索,因此它会搜索当前目录及其所有子目录下的文件。同样,它返回一个列表,其中包含符合条件的文件的路径名。然后我们可以使用for循环遍历这个列表并打印出所有找到的文件。

根据不同的需求,我们可以使用不同的通配符来查找文件。例如,*.txt用于查找以.txt为扩展名的文件,*.csv用于查找以.csv为扩展名的文件,*.jpg用于查找以.jpg为扩展名的文件,*.py用于查找以.py为扩展名的文件等等。

利用glob2和glob(),我们可以方便地对文件进行批量处理。比如,我们可以使用它们来读取文件内容、拷贝、移动、重命名、删除等等操作。我们可以将找到的文件路径作为参数传递给相应的操作函数,并在for循环内进行处理。以下是一个简单的例子,演示如何使用glob2来拷贝当前目录下所有txt文件到目标目录中:

import glob2
import shutil

# 查找当前目录下的所有txt文件
txt_files = glob2.glob('*.txt')

# 定义目标目录
destination_dir = './destination/'

# 复制文件到目标目录中
for file in txt_files:
    shutil.copy(file, destination_dir)

上述代码中,我们使用shutil模块提供的copy()函数来实现文件的拷贝操作。每次循环,我们将找到的文件复制到目标目录中。在这个例子中,我们将当前目录下所有txt文件拷贝到名为destination的子目录中。

需要注意的是,使用glob()函数时,点号'.'表示当前目录,而使用glob2模块时,点号'.'表示当前目录及其子目录。因此,在使用它们时需要注意路径的相对位置。同时,我们也可以使用绝对路径来查找文件。

综上所述,利用glob2和glob()模块,我们可以方便地批量处理文件。它们提供了强大的查找功能,可以根据需求灵活地查找文件,并进行相应的处理操作。无论是读取文件内容、拷贝、移动、重命名、删除等等操作,利用这两个模块都可以简化我们的工作流程。希望这个简单的例子能帮助你理解如何在Python中使用glob2和glob()来批量处理文件。