glob是python中用来查找符合特定规则的文件路径名的函数,类似于windows下的文件搜索。可使用匹配符进行文件查找。例如查找某文件夹下的以‘10’开头且后缀为‘.jpg’的所有图片。
from glob import glob
img_files = glob(r'D:\project data\mlt\image\10*.jpg')
for img_file in img_files:
print(img_file)
D:\project data\mlt\image\100_icdar13.jpg
D:\project data\mlt\image\101_icdar13.jpg
D:\project data\mlt\image\102_icdar13.jpg
...
匹配符有以下三种:
常见用法:
print(glob.glob(r’ . ./*’) ) # 上一级所有目录
print(glob.glob(r’ ./*’) ) # 本级所有目录
print(glob.glob(r’ C:/ * ') ) # C盘所有目录
print(glob.glob(“C:/[PB][RO]”) ) # C盘所有包含pr/po/br/bo的目录
print(glob.glob(“C://.txt”) ) # C盘两级目录所有的txt
有时候我们可能需要根据一串路径名称去获取文件的名称,通常情况下我们可能首先会想到split()方法,如果是在Linux系统下这个方法应该是可行的,但是在Windows系统下的路径通常是以 ‘\’ 分隔,但是 ‘\’ 在python中是转义符,这样的话就会产生歧义,所以split(’\’)是会报错的,不过在python中有相应的函数来直接获取文件名。
import os
from glob import glob
path = r'D:\project data\mlt\image\100_icdar13.jpg'
print('文件名:' +os.path.basename(path))
print('文件后缀:' + os.path.splitext(path)[-1])
print('无后缀的文件名:' + os.path.splitext(os.path.split(path)[-1])[0])
文件名:100_icdar13.jpg
文件后缀:.jpg
无后缀的文件名:100_icdar13
更多os.path()模块的内容可参考:python os.path()。 (ง •_•)ง