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实现用户登陆邮件通知的方法
Jul 09 Python
对于Python中RawString的理解介绍
Jul 07 Python
查看Django和flask版本的方法
May 14 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
python文字转语音的实例代码分析
Nov 12 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 Python
python合并多个excel文件的示例
Sep 23 Python
分享7个 Python 实战项目练习
Mar 03 Python
python三子棋游戏
May 04 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
Laravel多域名下字段验证的方法
2019/04/04 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
layui实现数据分页功能
2019/07/27 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python实现聊天小程序
2018/03/13 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python微信好友数据分析详解
2018/11/19 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
python+pygame实现坦克大战
2019/09/10 Python
Python pandas RFM模型应用实例详解
2019/11/20 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
大学生志愿者活动总结
2014/06/27 职场文书
新店开张活动方案
2014/08/24 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
vue实现移动端div拖动效果
2022/03/03 Vue.js
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android