fnmatch模組的使用 也是萬用字元

2021-09-11 05:01:41 字數 1706 閱讀 5769

fnmatch模組的使用

此模組的主要作用是檔名稱的匹配,並且匹配的模式使用的unix shell風格。

fnmatch比較簡單就4個方法分別是:fnmatch,fnmatchcase,filter,translate

測試filename,是否符合pattern。

import fnmatch

import os

def run():

for file in os.listdir(』.』): #os.listdir返回指定的資料夾包含的檔案或資料夾的名字的列表

if fnmatch.fnmatch(file, 『*.py』): #判斷是否有字尾為.py的檔案,*代表檔名長度格式不限制。

print(file)

ifname== 『main』:

run()

2.fnmatchcase

fnmatch.fnmatchcase(filename, pattern)

和fnmatch()類似,只是fnmatchcase 強制區分大小寫匹配,不管檔案系統是否區分。

print(fnmatch.fnmatchcase(「text.py」,「text.")) #true

print(fnmatch.fnmatchcase(「text.py」, "text.」)) # false

print(fnmatch.fnmatchcase(「text.py」, 「.py")) # false

print(fnmatch.fnmatchcase(「text.py」, ".py」)) # true

3.filter

fnmatch.filter(names, pattern)

實現列表特殊字元的過濾或篩選,返回符合匹配模式的字元列表,它的作用類似

print(fnmatch.filter(filelist,"?.py")) #匹配前面是乙個字元的.py檔案

輸出:d.py

4.translate

fnmatch.translate(pattern):

翻譯模式, fnmatch將這種全域性模式轉換成乙個正則式, 然後使用re模組來比較名字和模式。 translate() 函式是乙個公共api用於將全域性模式轉換成正則式

regex = fnmatch.translate(』[f,d,d,d,g,h].txt』)#將[f,d,d,d,g,h].txt轉為正則匹配的模式

print(「regex」,regex)#(?s:[f,d,d,d,g,h].txt)\z

#\z:匹配字串結束,如果是存在換行,只匹配到換行前的結束字串。

reobj = re.compile(regex)#生成re匹配模組

print(reobj.match (『f.txt』))#返回乙個匹配物件

#<_sre.sre_match object span="(0," match="『f.txt』">

fnmatch模組的使用

此模組的主要作用是檔名稱的匹配,並且匹配的模式使用的unix shell風格。fnmatch比較簡單就4個方法分別是 fnmatch,fnmatchcase,filter,translate 測試filename,是否符合pattern。import fnmatch import os defrun...

fnmatch模組的使用

fnmatch 函式根據指定的模式來匹配檔名或字串。此模組的主要作用是檔名稱的匹配,並且匹配的模式使用的unix shell風格。字面意思感覺就是filename match。如下 import os import fnmatch for filename in os.listdir test if...

fnmatch模組的使用

簡單記錄一下fnmatch模組的使用,此模組的主要作用是檔名稱的匹配,並且匹配的模式使用的unix shell風格。字面意思感覺就是filename match 如下例子所示 usr bin env python import os import fnmatch for filename in os...