Fnmatch模塊是Python的標準庫之一,用於進行文件名匹配。本篇文章將從Fnmatch庫、Fnmatch模塊使用說明、Fnmatch安裝、Fnmatch模塊使用方法、Fnmatch函數、Fnmatch函數定義、Fnmatch什麼用、Fnmatch.fnmatch匹配中文、Fnmatch Python、Fnmatch.filter選取等方面進行詳細闡述。
一、Fnmatch庫
Fnmatch模塊是Python自帶的標準庫之一,所以在使用時無需額外安裝。這個模塊提供了UNIX shell中常見的文件名匹配方式,支持通配符匹配,如:*代表任意個字元,?代表一個字元。
二、Fnmatch模塊使用說明
Fnmatch模塊提供了三個函數:fnmatch(name, pat)、fnmatchcase(name, pat)、filter(names, pat),分別用於單個文件名匹配、文件名大小寫敏感的匹配和多個文件名匹配。
三、Fnmatch安裝
由於Fnmatch是Python自帶的標準庫之一,所以無需額外安裝。可以直接在代碼中引入該模塊進行使用。
四、Fnmatch模塊使用方法
1.單個文件名匹配。
import fnmatch name = "abc.txt" pattern = "*.txt" if fnmatch.fnmatch(name, pattern): print("Matched") else: print("Not matched")
以上代碼中,使用了fnmatch.fnmatch()函數對文件名進行了匹配。如果文件名符合pattern所代表的通配符,那麼輸出「Matched」,否則輸出「Not matched」。
2.文件名大小寫敏感的匹配。
import fnmatch name = "abc.txt" pattern = "*.TXT" if fnmatch.fnmatchcase(name, pattern): print("Matched") else: print("Not matched")
fnmatch.fnmatchcase()函數與fnmatch.fnmatch()函數用法相同,差別在於fnmatch.fnmatchcase()函數是大小寫敏感的。
3.多個文件名匹配。
import fnmatch files = ["abc.txt", "bcd.doc", "efg.txt", "hij.jpg"] pattern = "*.txt" matched_files = fnmatch.filter(files, pattern) print(matched_files)
以上代碼中,使用了fnmatch.filter()函數對多個文件名進行了匹配,返回所有符合pattern所代表的通配符的文件名。輸出結果為:[‘abc.txt’, ‘efg.txt’]
五、Fnmatch函數
fnmatch庫使用了三個函數,分別是fnmatch()、fnmatchcase()和filter()。
fnmatch()函數用於文件名匹配,返回匹配結果。
fnmatchcase()函數與fnmatch()函數用法相同,差別在於fnmatchcase()函數是大小寫敏感的。
filter()函數用於多個文件名匹配,返回所有符合通配符匹配規則的文件名。
六、Fnmatch函數定義
fnmatch.fnmatch(name, pattern)
name: 要匹配的文件名。
pattern: 通配符匹配規則。
return: 如果文件名符合pattern所代表的通配符,則返回True,否則返回False。
fnmatch.fnmatchcase(name, pattern)
name: 要匹配的文件名。
pattern: 通配符匹配規則。
return: 如果文件名符合pattern所代表的通配符,則返回True,否則返回False。
fnmatch.filter(names, pattern)
names: 多個文件名組成的列表。
pattern: 通配符匹配規則。
return: 所有符合pattern所代表的通配符的文件名組成的列表。
七、Fnmatch什麼用
Fnmatch模塊的主要作用是用來進行文件名匹配,尤其是在涉及到多個文件名匹配的時候,Fnmatch.filter()函數非常有用。
八、Fnmatch.fnmatch匹配中文
Fnmatch.fnmatch()函數支持匹配中文文件名,但需要注意一下編碼問題。以下代碼演示了如何使用Fnmatch.fnmatch()函數進行中文文件名匹配。
# coding=utf-8 import fnmatch name = "中文文件名.txt" pattern = "中文文件名.*" if fnmatch.fnmatch(name.decode('utf-8'), pattern.decode('utf-8')): print("Matched") else: print("Not matched")
九、Fnmatch Python
Python使用Fnmatch模塊的方法非常簡單,只需要在代碼中引入該模塊,然後調用相應的函數即可。
十、Fnmatch.filter選取
Fnmatch.filter()函數是Fnmatch模塊中比較常用的函數之一,常用於文件名篩選。以下代碼演示了如何使用filter()函數對文件名進行篩選。
假設當前目錄下有以下文件:
abc.txt bcd.doc efg.txt hij.jpg
要篩選出所有以.txt結尾的文件名,可以使用以下代碼:
import fnmatch import os files = os.listdir('.') pattern = "*.txt" matched_files = fnmatch.filter(files, pattern) print(matched_files)
以上代碼中,os.listdir()函數將當前目錄下所有文件名進行列舉,然後使用fnmatch.filter()函數對文件名進行匹配,並返回所有符合規則的文件名。本例輸出結果為:[‘abc.txt’, ‘efg.txt’]
十一、總結
本文介紹了Fnmatch模塊的基本用法,包括單個文件名匹配、文件名大小寫敏感的匹配和多個文件名匹配等。同時,還介紹了如何使用fnmatch.filter()函數進行文件名篩選,以及Fnmatch.fnmatch()函數如何用於匹配中文文件名的處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306155.html