python复习之【fnmatch模式匹配】
【摘要】 fnmatch模块为大多数开发人员提供了一种简化的模式匹配语言,该语言具有非常快速且易于理解的语法。很少有字符具有特殊含义:*指任何文本?表示任何字符[...]指方括号内包含的字符[!...]指除方括号内的字符以外的所有内容 1.fnmatch.fnmatchimport fnmatchfnmatch.fnmatch('hello.txt','*.txt')True也可用于文本分隔def d...
fnmatch
模块为大多数开发人员提供了一种简化的模式匹配语言,该语言具有非常快速且易于理解的语法。
很少有字符具有特殊含义:
*
指任何文本?
表示任何字符[...]
指方括号内包含的字符[!...]
指除方括号内的字符以外的所有内容
1.fnmatch.fnmatch
import fnmatch
fnmatch.fnmatch('hello.txt','*.txt')
True
也可用于文本分隔
def declare(decl):
if not fnmatch.fnmatch(decl,'*:*:*'):
return False
t,n,v=decl.split(':',2)
globals()[n]=getattr(__builtins__, t)(v)
return True
declare('int:somenum:3')
True
somenum
3
2.fnmatch.filter
# 文件匹配
import os
fnmatch.filter(os.listdir(), '*.ipynb')
['main.ipynb', 'python复习之【Counter计数】.ipynb']
3.fnmatch.translate
将匹配模式翻译为正则表达式
reg = '({})|({})'.format(fnmatch.translate('*.success*'),
fnmatch.translate('*ipynb*'))
reg
'((?s:.*\\.success.*)\\Z)|((?s:.*ipynb.*)\\Z)'
import re
[s for s in os.listdir() if re.match(reg, s)]
['main.ipynb',
'python复习之【Counter计数】.ipynb',
'.ipynb_checkpoints',
'.homedata.success',
'.aistudiofs.success']
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)