python fnmatch文件名字匹配模块

2020-08-31  本文已影响0人  喵呜e喵星人

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

*           匹配多个字符
?           匹配单个字符
[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用于将全局模式转换成正则式

上一篇 下一篇

猜你喜欢

热点阅读