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 相关文章推荐
解决python中使用plot画图,图不显示的问题
Jul 04 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
python解析json串与正则匹配对比方法
Dec 20 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
python 获取sqlite3数据库的表名和表字段名的实例
Jul 17 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
python函数不定长参数使用方法解析
Dec 14 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
用python读取xlsx文件
Dec 17 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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 开发工具
2006/12/06 PHP
php array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
php中hashtable实现示例分享
2014/02/13 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
PHP 实现链式操作
2021/03/09 PHP
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
2018/09/29 Javascript
支付宝小程序tabbar底部导航
2018/11/06 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
[39:07]LGD vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Python创建系统目录的方法
2015/03/11 Python
python基础教程之分支、循环简单用法
2016/06/16 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
Python识别html主要文本框过程解析
2020/02/18 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
简述安装Slackware Linux系统的过程
2012/05/08 面试题
医学生职业规划范文
2014/01/05 职场文书
会计工作心得体会
2014/01/13 职场文书
乡镇党委书记第三阶段个人整改措施
2014/09/16 职场文书
安全主题班会教案
2015/08/12 职场文书
给校长的建议书作文300字
2015/09/14 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书