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 相关文章推荐
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
Python实现简单过滤文本段的方法
May 24 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
python实现日常记账本小程序
Mar 10 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
django 模版关闭转义方式
May 14 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
浅析NumPy 切片和索引
Sep 02 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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中用foreach来操作数组的代码
2011/07/17 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
Yii框架登录流程分析
2014/12/03 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php按单词截取字符串的方法
2015/04/07 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
php 数组元素快速去重
2017/05/05 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
Vue实现一个图片懒加载插件
2019/03/11 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
深入Python函数编程的一些特性
2015/04/13 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Python yield与实现方法代码分析
2018/02/06 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Python实现自动装机功能案例分析
2020/10/22 Python
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
房地产活动策划方案
2014/05/14 职场文书
设计大赛策划方案
2014/06/13 职场文书
女生节标语
2014/06/26 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
店长岗位职责
2015/02/11 职场文书
植树节新闻稿
2015/07/17 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle