Python3 fnmatch — Unix 风格的 Glob 文件名规则匹配
warning:
这篇文章距离上次修改已过429天,其中的内容可能已经有所变动。
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 模块的一些基本用法。
评论已关闭