python之glob模块以及根据路径获取文件名

mac2024-05-23  34

一. glob模块

        glob是python中用来查找符合特定规则的文件路径名的函数,类似于windows下的文件搜索。可使用匹配符进行文件查找。例如查找某文件夹下的以‘10’开头且后缀为‘.jpg’的所有图片。

Example 1:
from glob import glob img_files = glob(r'D:\project data\mlt\image\10*.jpg') for img_file in img_files: print(img_file)
Result:
D:\project data\mlt\image\100_icdar13.jpg D:\project data\mlt\image\101_icdar13.jpg D:\project data\mlt\image\102_icdar13.jpg ...

匹配符有以下三种:

”*”匹配任意0个或多个字符;”?”匹配任意单个字符;”[ ]”匹配指定范围内的字符,如:[0-9]匹配数字。

常见用法:

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中有相应的函数来直接获取文件名。

Example 2:
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])
Result:
文件名:100_icdar13.jpg 文件后缀:.jpg 无后缀的文件名:100_icdar13

        更多os.path()模块的内容可参考:python os.path()。 (ง •_•)ง

最新回复(0)