python fnmatch文件名字匹配模块

作用:
主要作用是文件名称的匹配
字符 含义

*           匹配多个字符
?           匹配单个字符
[seq]   匹配指定范围内字符
[!seq]  匹配不在指定范围内的字符

匹配结果为布尔型数据,True or False

eg:
1.fnmatch
查找本目录下所有py文件:

import fnmatch,os

for filename in os.listdir(os.curdir):
    if fnmatch.fnmatch(filename,"*.py"):
        print(filename)
if fnmatch.fnmatch('hello', '?ello'):  # 匹配模式为问号,及匹配一个任意字符
    print("hello")
if fnmatch.fnmatch('hello', 'h[a-z]llo'):  # 匹配模式为单个字符,在a-z之间
    print("hello")
if fnmatch.fnmatch('1hello', '[!a-z]hello'):  # 匹配模式为不能是a-z之间的字符
    print("hello")

2.fnmatchcase
fnmatch.fnmatchcase(filename, pattern)
和fnmatch()类似,只是fnmatchcase 强制区分大小写匹配,不管文件系统是否区分。

3.filter
fnmatch.filter(names, pattern)
实现列表特殊字符的过滤或筛选,返回符合匹配模式的字符列表,它的作用类似
[n for n in names if fnmatch(n, pattern)]
4.translate
fnmatch.translate(pattern):
翻译模式, fnmatch将这种全局模式转换成一个正则式, 然后使用re模块来比较名字和模式。 translate() 函数是一个公共API用于将全局模式转换成正则式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容