glob 文件名模式匹配,不用遍歷整個目錄判斷每個文件是不是符合。
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
知識點補充:Python編程:glob模塊進行文件名模式匹配
文件準備
$ mkdir tmp
$ cd tmp
$ touch file1.txt
$ touch file2.txt
$ touch file3.log
$ ls
file1.txt file2.txt file3.log
測試
import glob
# 使用零個或多個字符通配符 *
glob.glob("tmp/*.txt")
Out[1]:
['file1.txt', 'file2.txt']
# 使用單字符通配符 ?
glob.glob("tmp/file?.txt")
Out[2]:
['file1.txt', 'file2.txt']
# 使用范圍匹配
glob.glob("tmp/file[0-9].txt")
Out[3]:
['file1.txt', 'file2.txt']
總結
到此這篇關于淺析python標準庫中的glob的文章就介紹到這了,更多相關python標準庫 glob內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。