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实现颜色空间转换程序(Tkinter)
Dec 31 Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
python GUI实现小球满屏乱跑效果
May 09 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
Python类如何定义私有变量
Feb 03 Python
Python实现代码块儿折叠
Apr 15 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
Python如何执行精确的浮点数运算
Jul 31 Python
Python3如何在服务器打印资产信息
Aug 27 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
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
jQuery对象[0]是什么含义?
2010/07/31 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
Python实现获取汉字偏旁部首的方法示例【测试可用】
2018/12/18 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
CSS3用@font-face实现自定义英文字体
2013/09/23 HTML / CSS
html5绘制时钟动画
2014/12/15 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
教育学专业毕业生的自我评价
2013/11/21 职场文书
关于爱国的标语
2014/06/24 职场文书
工程项目合作意向书
2015/05/08 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL