您的位置:首頁技術文章
文章詳情頁

Python: glob匹配文件的操作

瀏覽:94日期:2022-07-02 14:15:21

glob模塊實例詳解

glob的應用場景是要尋找一系列(符合特定規則)文件名。

glob模塊是最簡單的模塊之一,內容非常少。用它可以查找符合特定規則的文件路徑名。查找文件只用到三個匹配符:”*”, “?”, “[]”。

”*”匹配0個或多個字符;

”?”匹配單個字符;

”[ ]”匹配指定范圍內的字符,如:[0-9]匹配數字。

假設以下例子目錄是這樣的。

dirdir/file.txtdir/file1.txtdir/file2.txtdir/filea.txtdir/fileb.txtdir/subdirdir/subdir/subfile.txt

匹配所有文件

可以用*匹配任意長度字節。glob.glob比較常用,返回一個list,也可用glob.iglob返回生成器。

import globfor name in glob.glob(’dir/*’): print name

dir/file.txtdir/file1.txtdir/file2.txtdir/filea.txtdir/fileb.txtdir/subdir

匹配子目錄文件

可以指定子目錄名稱,也可以用通配符代替,不顯示指定。

print ’Named explicitly:’for name in glob.glob(’dir/subdir/*’): print ’t’, nameprint ’Named with wildcard:’for name in glob.glob(’dir/*/*’): print ’t’, name

Named explicitly: dir/subdir/subfile.txtNamed with wildcard: dir/subdir/subfile.txt

單字節通配符匹配

除了*以外,還有?匹配單個字符。比如下面這個例子,匹配以file開頭,以.txt結尾,中間是任一字符的文件。

for name in glob.glob(’dir/file?.txt’):

print name

dir/file1.txtdir/file2.txtdir/filea.txtdir/fileb.txt

字符區間匹配[0-9]

比如匹配后綴前是數字的文件。

for name in glob.glob(’dir/*[0-9].*’):

print name

dir/file1.txt

dir/file2.txt

Ref:

官方文檔

Python Module of the Week

補充知識:Python glob 遞歸遍歷匹配文件;os.makedirs()遞歸創建目錄

Glob遞歸遍歷匹配文件

簡約版

在python中,glob模塊用來查找匹配文件

常用的匹配規則:

: 匹配所所有

? : 匹配一個字符

如果沒有匹配的,glob.glob(path)將返回一個空的list:[]

from glob import globfile_path = '/home/lihuiyu/Code/results_S2_W20040/*/*.pth'print(glob(file_path))

排序版

我喜歡偷懶,所以,Coding能解決的問題一般不會人工解決;

我喜歡整潔,所以,Coding苛求完美,結果奢求整齊劃一。

import refrom glob import globdef atoi(s): return int(s) if s.isdigit() else sdef natural_keys(text): return [atoi(c) for c in re.split(’(d+)’, text)] file_path = '/home/lihuiyu/Code/results_S2_W20040/*/*.pth'file_list = glob(file_path)file_list.sort(key=natural_keys)for name in file_list: print(name)

os.makedirs()遞歸創建目錄

os.mkdir()創建指定的目錄,但如果其上一級目錄不存在,則無法創建成功。

os.makedirs()實現遞歸創建目錄的功能。

以上這篇Python: glob匹配文件的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区