Python中的fnmatch模块提供了用于文件名模式匹配的功能,fnmatch函数是该模块中的核心函数,用于检查文件名是否与指定的模式匹配。
网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了永清免费建站欢迎大家使用!
1、fnmatch函数的语法:
fnmatch.fnmatch(filename, pattern)
参数说明:
filename:要进行匹配的文件名。
pattern:用于匹配的模式。
2、模式匹配规则:
‘*’:匹配任意长度的字符(包括0个字符)。
‘?’:匹配任意单个字符。
‘[seq]’:匹配seq中的任意一个字符。
‘[!seq]’:匹配不在seq中的任意一个字符。
3、示例:
import fnmatch import os 获取当前目录下的所有文件 files = os.listdir('.') 遍历文件列表,使用fnmatch函数进行模式匹配 for file in files: if fnmatch.fnmatch(file, '*.txt'): print(f'{file} 是一个文本文件') elif fnmatch.fnmatch(file, '*.py'): print(f'{file} 是一个Python文件') else: print(f'{file} 不是文本或Python文件')
4、使用通配符进行模式匹配:
import fnmatch import os 获取当前目录下的所有文件 files = os.listdir('.') 使用通配符进行模式匹配 patterns = ['*.txt', '*.py'] for pattern in patterns: for file in files: if fnmatch.fnmatch(file, pattern): print(f'{file} 匹配模式 {pattern}')
5、使用正则表达式进行模式匹配:
虽然fnmatch函数主要用于简单的文件名模式匹配,但也可以通过将正则表达式转换为fnmatch模式来实现更复杂的匹配,可以使用re模块的escape函数将正则表达式中的特殊字符转义,然后将其插入到fnmatch模式中。
import fnmatch import re def regex_to_fnmatch(pattern): return '*' + re.escape(pattern).replace('\*', '.*').replace('\?', '.') + '*' 将正则表达式转换为fnmatch模式 regex_pattern = r'd+' fnmatch_pattern = regex_to_fnmatch(regex_pattern) 使用转换后的fnmatch模式进行匹配 for file in os.listdir('.'): if fnmatch.fnmatch(file, fnmatch_pattern): print(f'{file} 匹配正则表达式 {regex_pattern}')
6、注意事项:
fnmatch函数在匹配时不区分大小写,如果需要区分大小写,可以使用fnmatch.fnmatchcase函数。
fnmatch函数仅支持基本的文件名模式匹配,不支持正则表达式的全部功能,如果需要进行更复杂的匹配,可以使用re模块的正则表达式功能。
当前名称:pythonfnmatch模块
分享路径:http://www.shufengxianlan.com/qtweb/news44/537694.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联