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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
python tkinter实现屏保程序
Jul 30 Python
Python实现微信机器人的方法
Sep 06 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
Python正则表达式急速入门(小结)
Dec 16 Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 Python
Python urllib库如何添加headers过程解析
Oct 05 Python
numba提升python运行速度的实例方法
Jan 25 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
浅谈python中的多态
Jun 15 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
zend framework多模块多布局配置
2011/02/26 PHP
PHP测试程序运行时间的类
2012/02/05 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
json对象转字符串如何实现
2012/12/02 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
JavaScript实现旋转木马轮播图
2020/03/16 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
python实现保存网页到本地示例
2014/03/16 Python
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
python数据结构之图的实现方法
2015/07/08 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
写给老师的表扬信
2014/01/21 职场文书
小学生自我评价范文
2014/01/25 职场文书
2014年度培训工作总结
2014/11/27 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
2015年暑假工作总结
2015/07/13 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Django 如何实现文件上传下载
2021/04/08 Python