目錄文件名查找模塊。在查找路徑中使用通配符,可以找到滿足指定條件的所有文件路徑名。
常用函數
該模塊包括3個函數,glob用於一次性返回指定路徑匹配的文件名;iglob和glob功能一樣,同樣查找匹配的文件名,但是返回對象是迭代器,即每次輸出一個;escape在路徑中選出*、?、[ 符號。
glob.glob(pathname, *, recursive=False) -> list
glob.iglob(pathname, *, recursive=False) -> iterator object
glob.escape(pathname)
輸入路徑名支持通配符:
符號 | 含義 |
---|---|
* | 匹配0到多個字符 |
? | 匹配1個字符 |
[a-z],[0-9]等 | 表示範圍,匹配1個字符 |
示例
glob
import glob
glob.glob('/root/data/test1/65*.csv')
#輸出‘/root/data/test1/’目錄下所有65開頭的csv文件
"""
['/root/data/test1/65bbf6d7a405afa6348d.csv',
'/root/data/test1/659a34281cc2fe85020e.csv',
'/root/data/test1/65bc1c8c4975caff0964.csv',
'/root/data/test1/65657f592decf6d14040.csv',
'/root/data/test1/65f046177650d25f7b42.csv']
"""
glob.glob('/root/*/[0-9].*')
#返回列表包括root的所有子目錄中所有以一個數字命名的各種類型文件
上文目錄都是Linux系統下,Windows下目錄格式不同,爲了防轉義,可以在字符串前加"r"
比如:r’C:\Users\USER\OneDrive\桌面*.txt’ 或 ‘C:\Users\USER\OneDrive\桌面\*.txt’
iglob
import glob
a=glob.iglob('/root/data/test1/65*.csv')
#<generator object _iglob at 0x7f01d5820d00>
next(a)
#輸出:'/root/data/test1/65bbf6d7a405afa6348d.csv'
next(a)
#輸出:'/root/data/test1/659a34281cc2fe85020e.csv'
escape
import glob
glob.escape('C:\\Users\\USER\\One?riv[a-f]\\桌面\\*.pdf')
#輸出:'C:\\Users\\USER\\One[?]riv[[]a-f]\\桌面\\[*].pdf'
#?*[三個符號會被[]所包括