天天看点

python标准库之glob模块python标准库之glob模块

python标准库之glob模块

在Linux下我们可以使用

ls

命令列出满足通配条件的文件,但是在python中

os.listdir(dirname)

中无法使用通配符,当然我们使用re模块配合

os.lisrdir

os.path

使用也可以达到目的,但是这个方法不够native。

好在这是一个非常使用的功能,python标准库中就提供

glob

模块达到此效果,下面我们就来讲讲怎么使用python下的

glob

模块得到模糊匹配文件(模糊搜索文件,使用通配符匹配文件)。

方法/函数

方法名 args 参数说明 返回说明
glob (pathname, recursive=False) pathname为需要匹配的字符串, recursive代表递归调用,与特殊通配符

**

一同使用,默认为False
返回一个所有符合通配字符串的路径(文件和子目录)列表
iglob (pathname, recursive=False) 同上 同上,但是返回的是一个迭代器,

支持的通配符

通配符 功能
* 匹配0或多个字符
** 匹配所有文件、目录、子目录和子目录里的文件(3.5版本新增)
? 匹配1个字符,与正则表达式里的?不同
[exp] 匹配指定范围内的字符,如:[1-9]匹配1至9范围内的字符
[!exp] 匹配不在指定范围内的字符

示例

import glob

# 找到/path/to/ 目录下所有的以png结尾的文件和目录

png_list = glob.glob("/path/to/*.png")

# 返回迭代器

png_iter = glob.iglob("/path/to/*.csv")

# 返回/path/to目录下所有文件/子目录

png_iter = glob.iglob("/path/to/**", recursive=True)