Python fnmatch模块:用于文件名的匹配
fnmatch 模块中,常用的函数及其功能如表 1 所示。
函数名 | 功能 |
|---|---|
fnmatch.filter(names, pattern) | 对 names 列表进行过滤,返回 names 列表中匹配 pattern 的文件名组成的子。 |
fnmatch.fnmatch(filename, pattern) | 判断 filename 文件名,是否和指定 pattern 字符串匹配 |
fnmatch.fnmatchcase(filename, pattern) | 和 fnmatch() 函数功能大致相同,只是该函数区分大小写。 |
fnmatch.translate(pattern) | 将一个 UNIX shell 风格的 pattern 字符串,转换为正则表达式 |
fnmatch 模块匹配文件名的模式使用的就是 UNIX shell 风格,其支持使用如下几个通配符:
*:可匹配任意个任意字符。
?:可匹配一个任意字符。
[字符序列]:可匹配中括号里字符序列中的任意字符。该字符序列也支持中画线表示法。比如 [a-c] 可代表 a、b 和 c 字符中任意一个。
[!字符序列]:可匹配不在中括号里字符序列中的任意字符。
例如,下面程序演示表 1 中一些函数的用法及功能:
import fnmatch
#filter()
print(fnmatch.filter(['dlsf', 'ewro.txt', 'te.py', 'youe.py'], '*.txt'))
#fnmatch()
for file in ['word.doc','index.py','my_file.txt']:
if fnmatch.fnmatch(file,'*.txt'):
print(file)
#fnmatchcase()
print([addr for addr in ['word.doc','index.py','my_file.txt','a.TXT'] if fnmatch.fnmatchcase(addr, '*.txt')])
#translate()
print(fnmatch.translate('a*b.txt'))
程序执行结果为:
['ewro.txt']
my_file.txt
['my_file.txt']
(?s:a.*b\.txt)\Z
- 随机文章
- 马累 马尔代夫(马尔代夫首都马累的探索之旅)
- 马尔代夫水上滑板(马尔代夫水上滑板新玩法)
- 兰卡富士马尔代夫(兰卡富士马尔代夫:奢华海岛度假胜地)
- 向往马尔代夫度假(梦幻马尔代夫度假,独享美丽海岛生活)
- 带情人游马尔代夫(浪漫马尔代夫游,美好时光与情人共享)
- 去马尔代夫买小岛(买小岛去马尔代夫,这是如何实现的?)
- 荥阳 马尔代夫(荥阳有人去马尔代夫了!)
- 昌平马尔代夫在哪(昌平游客们可以在哪里找到马尔代夫?)
- 保罗乔治马尔代夫(保罗乔治度假马尔代夫,晒出健身照片)
- 海岛妈妈马尔代夫(马尔代夫之旅:我和孩子们的海岛假期)
- 关于马尔代夫图片(美丽之岛,马尔代夫【图片】令人神往)
- 东方马尔代夫鼓手(东方鼓手在马尔代夫演绎独特音乐风情)
- 江夏马尔代夫简介(江夏马尔代夫:亚洲最受欢迎度假胜地)
- 沈阳马尔代夫温泉(沈阳马尔代夫温泉:恍如置身热带天堂)
- 网红芜湖马尔代夫(芜湖旅游网红云集,马尔代夫成为新宠)
- 新加坡加马尔代夫(新马岛一体化!新马岛联合旅游推广!)
- 自然冲浪马尔代夫(重返大自然,在马尔代夫享受自然冲浪)
- 航拍 马尔代夫(马尔代夫的鸟瞰美景)
- 金堂 马尔代夫(金堂游客在马尔代夫留下美好回忆)
- 泰国品牌马尔代夫(泰国旅游品牌将开设新酒店在马尔代夫)
- 矿产 马尔代夫(马尔代夫发现新矿产资源)
- 马尔代夫交通实力(马尔代夫交通基础:揭示岛国运输现状)
- 平面地图马尔代夫(马尔代夫地图:发现天堂岛屿的秘密!)
- 海岛马尔代夫防晒(享受马尔代夫度假,防晒措施不可忽视)
- 宜昌郊外马尔代夫(宜昌风景如画,郊外仿若身处马尔代夫)
- 济宁马尔代夫地图(济宁人出发,来一次舒适的马代之旅!)
- 马尔代夫出征时间(马尔代夫出征时间确定,即将开展行动)
- 法国 马尔代夫(法国派出豪华游艇救援马尔代夫遭遇的海洋环境危机)
- 马尔代夫写真出名(马尔代夫美景:令人惊艳的海滩和阳光)
- 几月 马尔代夫(马尔代夫最佳旅游季节推荐)
