python中的glob模組

2021-09-26 04:36:50 字數 1977 閱讀 8101

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