python——glob模塊

目錄文件名查找模塊。在查找路徑中使用通配符,可以找到滿足指定條件的所有文件路徑名。

常用函數

該模塊包括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'
#?*[三個符號會被[]所包括
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章