Python中glob库实现文件名的匹配


Posted in Python onJune 18, 2021
目录
  • 前言
  • 通配符
    • 星号(*)
    • 问号(?)
    • 区间匹配([0-9][a-z][A-Z])
  • 转义元字符

 

前言

既然在Pathlib库中提到了glob()函数,那么我们就专门用一篇内容讲解文件名的匹配。其实我们有专门的一个文件名匹配库就叫:glob。

不过,glob库的API非常小,但是仅仅应用于文件名的匹配绰绰有余。只要是在实际的项目中需要过滤,或者匹配一组文件,都可以使用该库进行操作。

 

通配符

 

星号(*)

话不多说,下面我们使用通配符来匹配文件名,示例如下:

import glob

for name in sorted(glob.glob('text/*')):
    print(name)

运行之后,效果如下:

Python中glob库实现文件名的匹配

这里不仅用*通配符获取了目录下的所有文件,而且还对其进行了排序。

 

问号(?)

问号(?)是用来匹配单字的,比如我们赛选上面1开头的图片文件。示例如下:

import glob

for name in glob.glob('text/1?.png'):
    print(name)

运行之后,效果如下:

Python中glob库实现文件名的匹配

 

区间匹配([0-9][a-z][A-Z])

从上面两个匹配我们看出来,glob库的匹配规则与正则表达式有些相似。既然它能匹配模糊的,一个或多个字符,那么肯定也可以匹配区间字符。

示例如下:

import glob

for name in glob.glob('text/15[a-z].*'):
    print(name)

运行之后,效果如下:

Python中glob库实现文件名的匹配

 

转义元字符

当然,上面的文件名都是常规的文件名,都是用字母与数字组成的。但是,有些人比较怪,可能在文件名中包含了特殊的字符,比如上面的匹配字符“?*[”等。那怎么办呢?用反斜杠“\”转义吗?

其实,我们还有更简单的,直接使用escape()函数进行操作。示例如下:

import glob

escape_str='?*[]'
for char in escape_str:
    pattern = 'text/*' + glob.escape(char) + '.png'
    for name in glob.glob(pattern):
        print(name)

运行之后,效果如下:

Python中glob库实现文件名的匹配

到此这篇关于Python中glob库实现文件名的匹配的文章就介绍到这了,更多相关Python 文件名的匹配内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python使用Queue在多个子进程间交换数据的方法
Apr 18 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
基于python实现学生管理系统
Oct 17 Python
基于python的Paxos算法实现
Jul 03 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
python PIL/cv2/base64相互转换实例
Jan 09 Python
解决jupyter notebook 前面书写后面内容消失的问题
Apr 13 Python
Python爬虫与反爬虫大战
Jul 30 Python
python 实现波浪滤镜特效
Dec 02 Python
python中的装饰器该如何使用
Jun 18 #Python
Python预测分词的实现
学会Python数据可视化必须尝试这7个库
python tqdm用法及实例详解
Jun 16 #Python
python使用pymysql模块操作MySQL
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 #Python
Python中else的三种使用场景
Jun 16 #Python
You might like
php四种基础算法代码实例
2013/10/29 PHP
php 生成短网址原理及代码
2014/01/23 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
2017/09/30 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
Vue过滤器,生命周期函数和vue-resource简单介绍
2021/01/12 Vue.js
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
python针对不定分隔符切割提取字符串的方法
2018/10/26 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
python实现扫雷游戏的示例
2020/10/20 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
安全生产月演讲稿
2014/05/09 职场文书
无毒社区工作方案
2014/05/23 职场文书
法人代表任命书范本
2014/06/05 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
vue首次渲染全过程
2021/04/21 Vue.js