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 相关文章推荐
基于scrapy实现的简单蜘蛛采集程序
Apr 17 Python
Python制作简易注册登录系统
Dec 15 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
May 23 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
Python编写单元测试代码实例
Sep 10 Python
python如何读取.mtx文件
Apr 22 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
jQuery第三课 修改元素属性及内容的代码
2010/03/14 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
JS实现一键回顶功能示例代码
2013/10/28 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
利用vue + koa2 + mockjs模拟数据的方法教程
2017/11/22 Javascript
JavaScript DOM元素常见操作详解【添加、删除、修改等】
2018/05/09 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
美国著名的家居用品购物网站:Bed Bath & Beyond
2018/01/05 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
杭州-DOTNET笔试题集
2013/09/25 面试题
贺卡寄语大全
2014/04/11 职场文书
个人职业及收入证明
2014/10/13 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
2014年测量员工作总结
2014/12/12 职场文书
党员个人党性分析材料
2014/12/18 职场文书
街道社区活动报告
2015/02/05 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
Java中API的使用方法详情
2022/04/06 Java/Android