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实现的一只从百度开始不断搜索的小爬虫
Aug 13 Python
跟老齐学Python之一个免费的实验室
Sep 14 Python
Python unittest模块用法实例分析
May 25 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
python 获取毫秒数,计算调用时长的方法
Feb 20 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Python+OpenCV实现实时眼动追踪的示例代码
Nov 11 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
总结Python连接CS2000的详细步骤
Jun 23 Python
Python 阶乘详解
Oct 05 Python
python 多态 协议 鸭子类型详解
Nov 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
php中http与https跨域共享session的解决方法
2014/12/20 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
基于Vue中点击组件外关闭组件的实现方法
2018/03/06 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
通过jquery的ajax请求本地的json文件方法
2018/08/08 jQuery
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
Vue 实现分页与输入框关键字筛选功能
2020/01/02 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
haskell实现多线程服务器实例代码
2013/11/26 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python 中的Selenium异常处理实例代码
2018/05/03 Python
django缓存配置的几种方法详解
2018/07/16 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
Python request使用方法及问题总结
2020/04/26 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
接口可以包含哪些成员
2012/09/30 面试题
低碳环保倡议书
2014/04/14 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
团日活动总结怎么写
2014/06/25 职场文书
2014年少先队工作总结
2014/12/03 职场文书
北京故宫导游词
2015/01/31 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技