目录文件名查找模块。在查找路径中使用通配符,可以找到满足指定条件的所有文件路径名。
常用函数
该模块包括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'
#?*[三个符号会被[]所包括