📅  最后修改于: 2023-12-03 15:37:51.443000             🧑  作者: Mango
在编程中,我们有时需要从多个模块中匹配某些内容。这时我们可以使用多个模块匹配。Python提供了多种方法来实现这个功能。
fnmatch
模块可以实现Unix-shell风格的字符串匹配。该模块提供了两个函数:fnmatch()
和fnmatchcase()
。
fnmatch(filename, pattern)
: 判断filename
是否匹配pattern
。fnmatchcase(filename, pattern)
: 同上,但是它区分大小写。示例代码:
import fnmatch
import os
pattern = '*.txt'
files = [f for f in os.listdir('.') if fnmatch.fnmatch(f, pattern)]
print(files)
输出结果为当前目录下所有的.txt
文件。
除了使用fnmatch
模块,我们还可以使用Python的正则表达式模块re
来匹配模块。
示例代码:
import re
import os
pattern = re.compile(r'.*\.txt$')
files = [f for f in os.listdir('.') if pattern.match(f)]
print(files)
输出结果同上。
如果我们只是需要简单的通配符匹配,那么可以使用glob
模块。
示例代码:
import glob
files = glob.glob('*.txt')
print(files)
输出结果同上。
以上这三种方法都可以实现多个模块匹配的功能。根据实际场景选择合适的方法来完成任务。