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上基于Markov链生成伪随机文本的教程
Apr 17 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
Python实现图片批量加入水印代码实例
Nov 30 Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 Python
Python爬取365好书中小说代码实例
Feb 28 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Python如何急速下载第三方库详解
Nov 02 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
php中的curl_multi系列函数使用例子
2014/07/29 PHP
几个实用的PHP内置函数使用指南
2014/11/27 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php和asp语法上的区别总结
2019/05/12 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
jQuery获取file控件中图片的宽高与大小
2016/08/04 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
canvas的神奇用法
2017/02/03 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
基于React实现表单数据的添加和删除详解
2017/03/14 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
python与php实现分割文件代码
2017/03/06 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
浅谈Python的条件判断语句if/else语句
2019/03/21 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
关于python中导入文件到list的问题
2020/10/31 Python
求职简历的自我评价
2014/01/31 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
2014年国庆节广播稿
2014/09/19 职场文书
化工见习报告范文
2014/10/31 职场文书
党员转正意见怎么写
2015/06/03 职场文书
护理工作心得体会
2016/01/22 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书