fnmatch 模块的使用

fnmatch() 函数根据指定的模式来匹配文件名或字符串。

此模块的主要作用是文件名称的匹配,并且匹配的模式使用的 unix shell 风格。字面意思感觉就是 filename match。

案例:

fnmatch 模块的使用

代码如下:

import os
import fnmatch

for filename in os.listdir('./test'):
    if fnmatch.fnmatch(filename, '*.txt'):  # 匹配模式为星号,表示任意的字符
        print(filename)

运行结果:

fnmatch 模块的使用

注:案例中主要使用 os.listdir 来列出当前目录中的文件,如果匹配的后缀为.txt,那么就打印出来,fnmatch.fnmatch 是一个布尔函数,返回为 True 或者 Faulse。

主要使用的匹配模式

import fnmatch

if fnmatch.fnmatch('apollo', '?pollo'):  # 匹配模式为问号,及匹配一个任意字符
    print("match1")

if fnmatch.fnmatch('apollo', '[a-z]pollo):  # 匹配模式为单个字符,在a-z之间
    print("match2")

if fnmatch.fnmatch('0pollo', '[!a-z]pollo'):  # 匹配模式为不能是a-z之间的字符
    print("match3")

运行结果:

fnmatch 模块的使用

注:
问号相当于一个占位符,从而能匹配
a是字母a-z之间的字母,从而能匹配
数字0不在a-z之间的字母,从而能匹配