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

使用glob()函数实现Python中的文件过滤功能

发布时间:2023-12-28 11:10:53

在Python中,glob()函数是用于过滤文件和文件夹路径的函数。它根据特定的模式匹配过滤文件,返回匹配模式的文件名列表。

glob()函数的使用需要导入glob模块,可以通过提供特定的模式来过滤文件。这个模式是基于Unix shell规则的通配符模式。

下面是glob()函数的语法:

glob.glob(pathname, recursive=False)

pathname参数是用于指定需要过滤的文件路径或文件夹路径的模式。它可以是一个字符串,也可以是包含多个字符串的列表。

recursive参数用于指定是否递归搜索子文件夹。默认为False,即只在当前目录下搜索匹配的文件。

glob()函数返回一个字符串列表,包含所有匹配给定模式的文件名和文件夹名。

下面是一些具体的例子来演示如何使用glob()函数来过滤文件:

例子1:过滤指定文件夹下的所有文件

import glob

file_list = glob.glob('/path/to/folder/*')
print(file_list)

在上面的例子中,/path/to/folder/是一个文件夹路径,*是通配符模式,用于匹配该文件夹下所有的文件。glob()函数返回一个包含所有匹配的文件名的列表。

例子2:过滤指定文件夹下的所有特定类型的文件

import glob

file_list = glob.glob('/path/to/folder/*.txt')
print(file_list)

在上面的例子中,.txt是文件类型,用于匹配所有以.txt结尾的文件。glob()函数返回一个包含所有匹配的.txt文件名的列表。

例子3:过滤指定文件夹及其子文件夹下的所有特定类型的文件

import glob

file_list = glob.glob('/path/to/folder/**/*.txt', recursive=True)
print(file_list)

在上面的例子中,**是递归通配符,用于匹配所有子文件夹。glob()函数的recursive参数被设置为True,以便递归搜索子文件夹。glob()函数返回一个包含指定文件夹及其子文件夹下所有匹配的.txt文件名的列表。

例子4:过滤包含特定字符的文件

import glob

file_list = glob.glob('/path/to/folder/*pattern*.txt')
print(file_list)

在上面的例子中,*pattern*是模式,用于匹配文件名中包含pattern这个字符串的文件。glob()函数返回一个包含所有匹配的文件名的列表。

例子5:过滤多个文件模式

import glob

file_list = glob.glob(['/path/to/folder/*.txt', '/path/to/folder/*.csv'])
print(file_list)

在上面的例子中,glob()函数接受一个以列表形式给出的多个文件模式。glob()函数返回一个包含所有匹配的.txt.csv文件名的列表。

综上所述,glob()函数是一个非常有用的函数,它可以根据特定的模式过滤文件。通过使用适当的模式,你可以过滤出满足你需求的文件名列表。无论是过滤特定文件夹下的文件,还是过滤特定类型的文件,或者是递归搜索子文件夹,glob()函数都能帮助你实现这些功能。