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

在Python中使用glob2模块查找匹配指定条件的文件夹

发布时间:2023-12-25 06:20:50

在Python中使用glob2模块可以方便地查找匹配指定条件的文件夹和文件。glob2模块是对Python自带的glob模块的扩展,提供了更灵活的路径匹配方式。下面是一个使用glob2模块查找匹配文件夹的示例代码:

import glob2

# 查找当前目录下所有的文件夹
folders = glob2.glob('*/')
print(folders)

# 查找当前目录及其子目录下所有的文件夹
folders = glob2.glob('**/', recursive=True)
print(folders)

# 查找当前目录及其子目录下所有的文件夹,且文件夹名称不以数字开头
folders = glob2.glob('[!0-9]*/', recursive=True)
print(folders)

示例代码中的glob2.glob('*/')使用通配符*/匹配当前目录下的所有文件夹,返回一个列表。而glob2.glob('**/', recursive=True)使用通配符**/匹配当前目录及其子目录下的所有文件夹,参数recursive=True表示递归查找。

在第三个示例中,通配符[!0-9]/用于匹配文件夹名称不以数字开头的文件夹。[!0-9]表示非数字,*/表示所有文件夹。

除了通配符,glob2还支持更复杂的匹配模式。例如,可以使用{"folder1", "folder2"}来匹配多个文件夹,使用[0-9]来匹配数字,使用[A-Za-z]来匹配字母等等。

除了查找文件夹,glob2还可以查找符合特定条件的文件。下面是一个示例代码:

import glob2

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

# 查找当前目录及其子目录下所有的.jpg和.png文件
files = glob2.glob('**/*.{jpg,png}', recursive=True)
print(files)

# 查找当前目录及其子目录下所有的以test开头的.py文件
files = glob2.glob('**/test*.py', recursive=True)
print(files)

示例代码中的*.py匹配当前目录下的所有.py文件。**/*.{jpg,png}匹配当前目录及其子目录下的所有.jpg和.png文件。**/test*.py匹配当前目录及其子目录下所有的以test开头的.py文件。

总之,使用glob2模块可以方便地查找匹配指定条件的文件夹和文件,可以通过通配符和其他匹配模式来实现更灵活的路径匹配。