📜  多个模块匹配 (1)

📅  最后修改于: 2023-12-03 15:37:51.443000             🧑  作者: Mango

多个模块匹配

在编程中,我们有时需要从多个模块中匹配某些内容。这时我们可以使用多个模块匹配。Python提供了多种方法来实现这个功能。

fnmatch模块

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文件。

re模块

除了使用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模块

如果我们只是需要简单的通配符匹配,那么可以使用glob模块。

示例代码:

import glob

files = glob.glob('*.txt')
print(files)

输出结果同上。

以上这三种方法都可以实现多个模块匹配的功能。根据实际场景选择合适的方法来完成任务。