一、模块作用
fnmatch 模块主要用于文件名的比较,使用 Unix shell 使用的 glob 样式模式。
二、简单匹配
fnmatch()
将单个文件名与模式进行比较并返回布尔值,来看它们是否匹配。当操作系统使用区分大小写的文件系统时,比较区分大小写。
实例:模式匹配所有以 'fnmatch_'
开头和以 '.py'
结尾的文件
import fnmatch import os #需要匹配的文件名及后缀 patten = 'fnmatch_*.py' #文件所在的目录 files = os.listdir('.') #循环匹配 for name in sorted(files): print('Filename: {:<25} {}'.format(name, fnmatch.fnmatch(name, patten)))
**要强制进行区分大小写的比较,无论文件系统和操作系统设置如何,请使用 fnmatchcase()
。
三、过滤
要测试文件名序列,使用 filter()
,它返回与 pattern
参数匹配的名称列表。
import fnmatch import os #需要匹配的文件名及后缀 patten = 'fnmatch_*.py' #排序 files = list(sorted(os.listdir('.'))) fnmatch.filter(files,patten)
四、翻译模式
在内部,fnmatch
将 glob
模式转换为正则表达式,并使用 re
模块比较名称和模式。translate()
函数是将 glob
模式转换为正则表达式的公共 API。