Python: glob匹配文件的操作


Posted in Python onDecember 11, 2020

glob模块实例详解

glob的应用场景是要寻找一系列(符合特定规则)文件名。

glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。查找文件只用到三个匹配符:”*”, “?”, “[]”。

”*”匹配0个或多个字符;

”?”匹配单个字符;

”[ ]”匹配指定范围内的字符,如:[0-9]匹配数字。

假设以下例子目录是这样的。

dir
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir
dir/subdir/subfile.txt

匹配所有文件

可以用*匹配任意长度字节。glob.glob比较常用,返回一个list,也可用glob.iglob返回生成器。

import glob
for name in glob.glob('dir/*'):
  print name
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir

匹配子目录文件

可以指定子目录名称,也可以用通配符代替,不显示指定。

print 'Named explicitly:'
for name in glob.glob('dir/subdir/*'):
  print '\t', name

print 'Named with wildcard:'
for name in glob.glob('dir/*/*'):
  print '\t', name
Named explicitly:
  dir/subdir/subfile.txt
Named with wildcard:
  dir/subdir/subfile.txt

单字节通配符匹配

除了*以外,还有?匹配单个字符。比如下面这个例子,匹配以file开头,以.txt结尾,中间是任一字符的文件。

for name in glob.glob('dir/file?.txt'):

print name

dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt

字符区间匹配[0-9]

比如匹配后缀前是数字的文件。

for name in glob.glob('dir/*[0-9].*'):

print name

dir/file1.txt

dir/file2.txt

Ref:

官方文档

Python Module of the Week

补充知识:Python glob 递归遍历匹配文件;os.makedirs()递归创建目录

Glob递归遍历匹配文件

简约版

在python中,glob模块用来查找匹配文件

常用的匹配规则:

: 匹配所所有

? : 匹配一个字符

如果没有匹配的,glob.glob(path)将返回一个空的list:[]

from glob import glob
file_path = "/home/lihuiyu/Code/results_S2_W20040/*/*.pth"
print(glob(file_path))

排序版

我喜欢偷懒,所以,Coding能解决的问题一般不会人工解决;

我喜欢整洁,所以,Coding苛求完美,结果奢求整齐划一。

import re
from glob import glob
def atoi(s):
 return int(s) if s.isdigit() else s
def natural_keys(text):
 return [atoi(c) for c in re.split('(\d+)', text)]
 
file_path = "/home/lihuiyu/Code/results_S2_W20040/*/*.pth"
file_list = glob(file_path)
file_list.sort(key=natural_keys)
for name in file_list:
  print(name)

os.makedirs()递归创建目录

os.mkdir()创建指定的目录,但如果其上一级目录不存在,则无法创建成功。

os.makedirs()实现递归创建目录的功能。

以上这篇Python: glob匹配文件的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
用Python编写一个简单的Lisp解释器的教程
Apr 03 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python编程scoketServer实现多线程同步实例代码
Jan 29 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
使用Python第三方库pygame写个贪吃蛇小游戏
Mar 06 Python
python实现批量转换图片为黑白
Jun 16 Python
Python从文件中读取数据的方法步骤
Nov 18 Python
Python Socket多线程并发原理及实现
Dec 11 #Python
python 实现Harris角点检测算法
Dec 11 #Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
Dec 11 #Python
Python3 用matplotlib绘制sigmoid函数的案例
Dec 11 #Python
python 基于opencv 实现一个鼠标绘图小程序
Dec 11 #Python
Python 用__new__方法实现单例的操作
Dec 11 #Python
python实现图像高斯金字塔的示例代码
Dec 11 #Python
You might like
php在线生成ico文件的代码
2007/10/09 PHP
php单件模式结合命令链模式使用说明
2008/09/07 PHP
php检测useragent版本示例
2014/03/24 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
jquery 实现二级/三级/多级联动菜单的思路及代码
2013/04/08 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
Python设置默认编码为utf8的方法
2016/07/01 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
Debenhams百货英国官方网站:Debenhams UK
2016/07/12 全球购物
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
计算机应用毕业生自荐信
2013/10/23 职场文书
简历的个人自我评价范文
2014/01/03 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
最新结婚典礼主持词
2014/03/14 职场文书
文明市民先进事迹
2014/05/15 职场文书
公务员个人考察材料
2014/12/23 职场文书
大学推普周活动总结
2015/05/07 职场文书
趣味运动会简讯
2015/07/20 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
Python实现机器学习算法的分类
2021/06/03 Python
使用Ajax实现无刷新上传文件
2022/04/12 Javascript