Python3 fnmatch — Unix 风格的 Glob 文件名规则匹配
fnmatch
是 Python 的内置模块,用于 Unix 风格的通配符匹配。它提供了 fnmatch()
和 fnmatchcase()
函数,以及 fnmatchcase()
类。
以下是一些使用 fnmatch
的示例:
- 基本的匹配:
import fnmatch
file_name = 'spam.txt'
if fnmatch.fnmatch(file_name, '*.txt'):
print('Matched')
else:
print('Not Matched')
在这个例子中,我们正在检查文件名 'spam.txt' 是否匹配模式 '*.txt'。
- 使用
fnmatchcase()
进行区分大小写的匹配:
import fnmatch
file_name = 'spam.txt'
if fnmatch.fnmatchcase(file_name, 'SPAM.TXT'):
print('Matched')
else:
print('Not Matched')
在这个例子中,我们正在检查文件名 'spam.txt' 是否精确地匹配模式 'SPAM.TXT'。
- 使用
filter()
函数和fnmatchcase()
进行列表中的模式匹配:
import fnmatch
file_list = ['spam.txt', 'eggs.txt', 'bacon.xml']
for file_name in fnmatch.filter(file_list, '*.txt'):
print(file_name)
在这个例子中,我们正在检查列表中的所有文件名是否匹配模式 '*.txt'。
- 使用
translate()
方法将 Unix 风格的 Glob 模式转换为正则表达式:
import fnmatch
pattern = '*.txt'
regex = fnmatch.translate(pattern)
print(regex) # 输出:'^.*\.txt$'
在这个例子中,我们正在将 Unix 风格的 Glob 模式 '*.txt' 转换为正则表达式。
以上就是 fnmatch
模块的一些基本用法。
评论已关闭