Python之fnmatch模块的使用

 fnmatch模块的作用

主要用于文件名的匹配,匹配到返回True或匹配不到返回False。

 1、匹配文件名,是否一样

import fnmatch
import os

pattern = 'server_*.py'
print('Pattern:', pattern)

files = os.listdir('.')
for name in sorted(files):
    print('文件名: {:<25} {}'.format(name, fnmatch.fnmatch(name, pattern)))
fnmatch_fnmatch.py

测试效果

Pattern: server_*.py
文件名: .idea                     False
文件名: __pycache__               False
文件名: dir                       False
文件名: parser_xls                False
文件名: server.py                 False
文件名: server_1.py               True
文件名: server_adf.py             True
文件名: template                  False
文件名: fnmatch_fnmatch.py                   False
文件名: todb.db                   False

 2、区分文件名大小写的比较

import fnmatch
import os

pattern = 'SERVER_*.PY'
print('Pattern:', pattern)

files = os.listdir('.')
for name in sorted(files):
    print('文件名: {:<25} {}'.format(name, fnmatch.fnmatchcase(name, pattern)))
fnmatch_fnmatchcase.py

 测试效果

Pattern: SERVER_*.PY
文件名: .idea                     False
文件名: SERVER_1.PY               True
文件名: __pycache__               False
文件名: dir                       False
文件名: parser_xls                False
文件名: server.py                 False
文件名: server_adf.py             False
文件名: template                  False
文件名: test.py                   False
文件名: todb.db                   False

 3、从列表中过滤出匹配的文件名

import fnmatch
import os
import pprint

pattern = 'server_*.py'
print('Pattern : ', pattern)

files = list(sorted(os.listdir('.')))
print('Files :')
pprint.pprint(files)

print('\nMatches :')
pprint.pprint(fnmatch.filter(files, pattern))
fnmatch_filter.py

测试效果

Pattern :  server_*.py
Files :
['.idea',
 'SERVER_1.PY',
 '__pycache__',
 'dir',
 'parser_xls',
 'server.py',
 'server_adf.py',
 'template',
 'test.py',
 'todb.db']

Matches :
['SERVER_1.PY', 'server_adf.py']

 4、将指定好的规则转为成正则表达式

import fnmatch

pattern = 'server_*.py'
print('Pattern : ', pattern)

print('正则表达式', fnmatch.translate(pattern))
fnmatch_translate.py

测试效果

Pattern :  server_*.py
正则表达式 (?s:server_.*\.py)\Z
posted @ 2020-04-26 12:31  小粉优化大师  阅读(1122)  评论(0编辑  收藏  举报