目录

  • 前言
  • 通配符
    • 星号(*)
    • 问号(?)
    • 区间匹配([0-9][a-z][A-Z])
  • 转义元字符

前言

既然在Pathlib库中提到了glob()函数,那么我们就专门用一篇内容讲解文件名的匹配。其实我们有专门的一个文件名匹配库就叫:glob。

不过,glob库的API非常小,但是仅仅应用于文件名的匹配绰绰有余。只要是在实际的项目中需要过滤,或者匹配一组文件,都可以使用该库进行操作。

通配符

星号(*)

话不多说,下面我们使用通配符来匹配文件名,示例如下:

import globfor name in sorted(glob.glob('text/*')):print(name)

运行之后,效果如下:

这里不仅用*通配符获取了目录下的所有文件,而且还对其进行了排序。

问号(?)

问号(?)是用来匹配单字的,比如我们赛选上面1开头的图片文件。示例如下:

import globfor name in glob.glob('text/1?.png'):print(name)

运行之后,效果如下:

区间匹配([0-9][a-z][A-Z])

从上面两个匹配我们看出来,glob库的匹配规则与正则表达式有些相似。既然它能匹配模糊的,一个或多个字符,那么肯定也可以匹配区间字符。

示例如下:

import globfor name in glob.glob('text/15[a-z].*'):print(name)

运行之后,效果如下:

转义元字符

当然,上面的文件名都是常规的文件名,都是用字母与数字组成的。但是,有些人比较怪,可能在文件名中包含了特殊的字符,比如上面的匹配字符“?*[”等。那怎么办呢?用反斜杠“\”转义吗?

其实,我们还有更简单的,直接使用escape()函数进行操作。示例如下:

import globescape_str='?*[]'
for char in escape_str:pattern = 'text/*' + glob.escape(char) + '.png'for name in glob.glob(pattern):print(name)

运行之后,效果如下:

glob库:文件名的匹配相关推荐

  1. Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介、使用方法之详细攻略

    Py之glob: glob库文件名模式匹配+返回所有匹配的文件路径列表库的简介.使用方法之详细攻略 目录 glob库的简介 glob库的使用方法 1.单个字符通配符:用问号(?)匹配任何单个的字符.

  2. Python之glob模块进行文件匹配及遍历

    Python之glob模块进行文件匹配及遍历 glob是python自带的一个操作文件的相关模块,用来查找符合特定规则的文件路径,是python处理文件路径相关问题中常用的包. glob 文件名模式匹 ...

  3. python 文件路径_「按需学Python」 1. Glob库遍历路径/文件

    小前言: 本人Python小白,因为最近想整理下近10几年的老照片,然后就有了写脚本批处理的想法.初始需求其实很简单,就是筛选自己想要的照片到指定文件夹,然后按照exif信息重命名照片为拍摄时间_拍摄 ...

  4. Linux 动态链接和静态链接简析(库名与库文件名)

    原文请见 Linux动态链接和静态链接简析 0. 库名与真正的库文件名 就拿数学库来说,他的库名是 m,他的库文件名是libm.so,很容易看出,把库文件名的头 lib 和尾.so去掉就是库名.(gc ...

  5. svn重新定位提示版本库uuid不匹配

    svn"重新定位"提示版本库 uuid不匹配: 版本库 "https://127.0.0.1:444/svn/Mir" 的 uuid是 "d52648 ...

  6. python的glob库_【按需学Python】 1. Glob库遍历路径/文件

    小前言(请跳过): 本人Python小白,因为最近想整理下近10几年的老照片,然后就有了用脚本批处理照片的想法. 初始需求其实很简单,就是筛选自己想要的照片到指定文件夹,然后按照exif信息重命名照片 ...

  7. 【Python】之glob库介绍

    概述 glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.可以使用*.?.[ ]这三种通配符对路径中的文件进 ...

  8. c语言 获取文件名的相对路径,c – 如何获取对应于给予dlopen的相对路径的绝对库文件名?...

    在我的程序中,我有如下代码 /* libname may be a relative path */ void loadLib(char const *libname) { void *handle ...

  9. 原 python实现模糊匹配_使用python中的fuzzywuzzy库进行模糊匹配实例

    fuzzywuzzy库是Python中的模糊匹配库,它依据 Levenshtein Distance 算法 计算两个序列之间的差异. Levenshtein Distance 算法,又叫 Edit D ...

  10. boost库之正则匹配

    正则基础:正则匹配字符 *点号(.)可以匹配任意单个字符 *表示前面的字符可以重复任意多次(n>=0) +表示前面的字符可以重复一次或多次(n>0) ?表示前面的字符可以重复0次或1次 ^ ...

最新文章

  1. erlang四种启动监控策略
  2. python不需要缩进的代码顶行编写_python程序快速缩进多行代码方法总结
  3. 一个高端大气上档次的壁纸网站,突破你的的审美
  4. 反思赚钱:一定要动脑子 一定找发财点
  5. 数据库开发——MySQL——索引原理
  6. Undefined control sequence. 问题
  7. YBTOJBZOJ:大根堆(启发式合并)
  8. vsftpd + Berkeley DB 创建基于虚拟用户的FTP
  9. UVA1437 String painter
  10. Selenium API-鼠标与键盘事件
  11. 调制方式性能比较--BER,频带效率的极限
  12. 【§美女杨颖win7电脑主题下载§系统美化】
  13. 日期插件layui的》laydate
  14. 名帖41 伊秉绶 隶书《对联八幅》
  15. 解决pycharm中中文列表输出'\xe5\xa4\xa7\xe8\x92\x9c'之类的字符串
  16. 阻塞队列(二):PriorityBlockingQueue
  17. 敏捷开发项目管理流程
  18. Android Studio自带apk签名工具——apksigner
  19. SuppressWarnings的使用、作用、用法
  20. 刨根问底:Kafka 到底会不会丢数据?

热门文章

  1. 你可以有喜欢和善用的语言,但千万不要和她Bind
  2. 保存Windows聚焦锁屏壁纸
  3. hikaricp mysql_JAVA连接数据库 #03# HikariCP
  4. 使用DCMTK实现DICOM文件浏览器dicom explorer
  5. CCF计算机软件能力认证试题练习:201903-2 二十四点
  6. 强大的 Apipost 要取代 Postman 了吗?
  7. 适合写api接口文档的管理工具有哪些?
  8. JAVA生成随机数工具类
  9. hello.java_helloworld怎么写java
  10. oracle10.2.0.4 dbca,10.2.0.4 DBCA problem :Error securing Database Control,...