Python: glob匹配文件的操作
glob模塊實(shí)例詳解
glob的應(yīng)用場景是要尋找一系列(符合特定規(guī)則)文件名。
glob模塊是最簡單的模塊之一,內(nèi)容非常少。用它可以查找符合特定規(guī)則的文件路徑名。查找文件只用到三個(gè)匹配符:”*”, “?”, “[]”。
”*”匹配0個(gè)或多個(gè)字符;
”?”匹配單個(gè)字符;
”[ ]”匹配指定范圍內(nèi)的字符,如:[0-9]匹配數(shù)字。
假設(shè)以下例子目錄是這樣的。
dir dir/file.txt dir/file1.txt dir/file2.txt dir/filea.txt dir/fileb.txt dir/subdir dir/subdir/subfile.txt
匹配所有文件
可以用*匹配任意長度字節(jié)。glob.glob比較常用,返回一個(gè)list,也可用glob.iglob返回生成器。
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
匹配子目錄文件
可以指定子目錄名稱,也可以用通配符代替,不顯示指定。
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
單字節(jié)通配符匹配
除了*以外,還有?匹配單個(gè)字符。比如下面這個(gè)例子,匹配以file開頭,以.txt結(jié)尾,中間是任一字符的文件。
for name in glob.glob('dir/file?.txt'):
print name
dir/file1.txt dir/file2.txt dir/filea.txt dir/fileb.txt
字符區(qū)間匹配[0-9]
比如匹配后綴前是數(shù)字的文件。
for name in glob.glob('dir/*[0-9].*'):
print name
dir/file1.txt
dir/file2.txt
Ref:
補(bǔ)充知識:Python glob 遞歸遍歷匹配文件;os.makedirs()遞歸創(chuàng)建目錄
Glob遞歸遍歷匹配文件
簡約版
在python中,glob模塊用來查找匹配文件
常用的匹配規(guī)則:
: 匹配所所有
? : 匹配一個(gè)字符
如果沒有匹配的,glob.glob(path)將返回一個(gè)空的list:[]
from glob import glob file_path = "/home/lihuiyu/Code/results_S2_W20040/*/*.pth" print(glob(file_path))
排序版
我喜歡偷懶,所以,Coding能解決的問題一般不會人工解決;
我喜歡整潔,所以,Coding苛求完美,結(jié)果奢求整齊劃一。
import re
from glob import glob
def atoi(s):
return int(s) if s.isdigit() else s
def 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()遞歸創(chuàng)建目錄
os.mkdir()創(chuàng)建指定的目錄,但如果其上一級目錄不存在,則無法創(chuàng)建成功。
os.makedirs()實(shí)現(xiàn)遞歸創(chuàng)建目錄的功能。
以上這篇Python: glob匹配文件的操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
tensorflow中tf.reduce_mean函數(shù)的使用
這篇文章主要介紹了tensorflow中tf.reduce_mean函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取SQLServer數(shù)據(jù)并插入到MongoDB數(shù)據(jù)庫的方法,涉及Python同時(shí)進(jìn)行SQLServer與MongoDB數(shù)據(jù)庫的連接、查詢、讀取、寫入等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-06-06
Python中用于去除空格的三個(gè)函數(shù)的使用小結(jié)
這篇文章主要介紹了Python中用于去除空格的三個(gè)函數(shù)的使用小結(jié),對strip()和lstrip()和rstrip()這三個(gè)函數(shù)做了簡單的講解,需要的朋友可以參考下2015-04-04
python np.arange 步長0.1的問題需要特別注意
這篇文章主要介紹了python np.arange 步長0.1的問題需要特別注意,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05

