fnmatch模組的使用

2021-09-19 18:32:41 字數 2082 閱讀 8659

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

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

測試filename,是否符合pattern。

import

fnmatch

import os

defrun

():for

file in

os.listdir('.'

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

iffnmatch.fnmatch(file, 

'*.py'

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

print(file)

if__name__ == 

'__main__'

:run()

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

fnmatch.filter(names, pattern)

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

)) #匹配前面是乙個字元的.py檔案

輸出:d.py

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>

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...

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

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