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

一. 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
...

匹配符有以下三种:

  1. ”*”匹配任意0个或多个字符;
  2. ”?”匹配任意单个字符;
  3. ”[ ]”匹配指定范围内的字符,如:[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()。 (ง •_•)ง

你可能感兴趣的:(Python)