用glob模組可以查詢符合特定規則的檔案路徑名。跟使用windows下的檔案搜尋很像。查詢檔案只用到三個匹配符:」」, 「?」, 「」。」」匹配0個或多個字元;」?」匹配單個字元;」」匹配指定範圍內的字元,如:[0-9]匹配數字。
1、萬用字元
星號(*)匹配零個或多個字元
import glob
for name in glob.glob('dir/*'):
print (name)
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir
列出子目錄中的檔案,必須在模式中包括子目錄名:
import glob
#用子目錄查詢檔案
print ('named explicitly:')
for name in glob.glob('dir/subdir/*'):
print ('\t', name)
#用萬用字元* 代替子目錄名
print ('named with wildcard:')
for name in glob.glob('dir/*/*'):
print ('\t', name)
named explicitly:
dir/subdir/subfile.txt
named with wildcard:
dir/subdir/subfile.txt
2、單個字元萬用字元
用問號(?)匹配任何單個的字元。
import glob
for name in glob.glob('dir/file?.txt'):
print (name)
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
3、字元範圍
當需要匹配乙個特定的字元,可以使用乙個範圍,寫在方框[ ]裡
import glob
for name in glob.glob('dir/*[0-9].*'):
print (name)
dir/file1.txt
dir/file2.txt
glob.glob
返回所有匹配的檔案路徑列表。它只有乙個引數pathname,定義了檔案路徑匹配規則,這裡可以是絕對路徑,也可以是相對路徑。輸出型別是list型。
import glob
file = glob.glob(r'd:\data\doi\*\*\*\*.dcm')
print(type(file))
print(file)
#獲取上級目錄的所有.py檔案
print (glob.glob(r'../*.py')) #相對路徑
glob.iglob
獲取乙個可編歷物件( iterator ),使用它可以逐個獲取匹配的檔案路徑名。與glob.glob()的區別是:glob.glob同時獲取所有的匹配路徑,而glob.iglob一次只獲取乙個匹配路徑。對於大量檔案時更為省記憶體。
import glob
#父目錄中的.py檔案
f = glob.iglob(r'../*.py')
print ( f )
for py in f:
print (py)
Python中的Glob模組
glob模組是最簡單的模組之一,內容非常少。用它可以查詢符合特定規則的檔案路徑名。跟使用windows下的檔案搜尋差不多。查詢檔案只用到三個匹配符 匹配0個或多個字元 匹配單個字元 匹配指定範圍內的字元,如 0 9 匹配數字。glob.glob 返回所有匹配的檔案路徑列表。它只有乙個引數pathna...
python中的glob模組的使用
最近常常用到glob模組,這裡做乙個簡單小結 用它可以查詢符合特定規則的檔案路徑名。跟使用windows下的檔案搜尋差不多。查詢檔案只用到三個匹配符 匹配0個或多個字元 匹配單個字元 匹配指定範圍內的字元,如 0 9 匹配數字。返回所有匹配的檔案路徑列表。它只有乙個引數pathname,定義了檔案路...
Python模組學習 glob模組
功能描述 glob模組可以使用unix shell風格的萬用字元匹配符合特定格式的檔案和資料夾,跟windows的檔案搜尋功能差不多。glob模組並非呼叫乙個子shell實現搜尋功能,而是在內部呼叫了os.listdir 和fnmatch.fnmatch glob模組共包含以下3個函式 glob p...