介绍
在python中,fnmatch模块是用来做字符串匹配文件名的标准库。
源码: Lib/fnmatch.py
fnmatch支持的通配符:
通配符 | 含义 |
---|---|
* | 匹配任何数量的字符 |
? | 匹配单个字符 |
[seq] | 匹配seq中的字符 |
[!seq] | 匹配除seq以外的任何字符 |
使用
1 | >>> import fnmatch |
fnmatch这个库相对比较简单,只有4个函数,分别是fnmatch、fnmatchcase、filter和translate,其中最常用的是fnmatch。主要功能如下:
- fnmatch:判断文件名是否符合特定的模式。
- fnmatchcase:判断文件名是否符合特定的模式,区分大小写。
- filter:返回输入列表中,符合特定模式的文件名列表。
- translate:将通配符模式转换成正则表达式。
示例
fnmatch.fnmatch
1 | 语法:fnmatch(name, pat) |
1 | >>> file_list = ['A1.jpg', 'a1.txt', 'a2.txt', 'aA.txt', 'b3.jpg', 'b2.jpg', 'b1.jpg'] |
fnmatch.fnmatchcase
1 | 语法:fnmatchcase(name, pat) |
1 | >>> file_list = ['A1.jpg', 'a1.txt', 'a2.txt', 'aA.txt', 'b3.jpg', 'b2.jpg', 'b1.jpg'] |
fnmatch.filter
1 | 语法:filter(names, pat) |
1 | >>> file_list = ['A1.jpg', 'a1.txt', 'a2.txt', 'aA.txt', 'b3.jpg', 'b2.jpg', 'b1.jpg'] |
fnmatch.translate
1 | 语法:translate(pat) |
1 | >>> fnmatch.translate('*jpg') |