fnmatch可以支持类似于UNIXshell风格的文件名匹配:
*:可匹配任意个任意字符;
?:可匹配一个任意字符;
[[字符序列]]:可匹配中括号里字符序列中的任意字符,该字符序列也支持中划线表示法。比如[a-c]可代表a,b,c字符中的任意一个;
[[!字符序列]]:可匹配不在括号里字符序列中的任意字符;
fnmatch.fnmatch(filename, pattern):判断指定文件名是否匹配指定pattern。例如:
from pathlib import *
import fnmatch
#遍历当前目录下的所有文件和目录
for file in Path('.').iterdir():
#访问所有以.py结尾的文件
if fnmatch.fnmatch(file, '*.py'):
print(file)
fnmatch.fnmatchcase(filename, pattern):与前一个函数的功能大致相同,区别在于区分大小写;
fnmatch.filter(names, pattern):对names列表进行过滤,返回names列表中匹配的pattern的文件名组成的子集合。实际文件是否存在fnmatch模块并不关心。例如:
fnmatch.translate(pattern):该函数用于将一个UNIXshell风格的pattern转换为正则表达式pattern。