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中Collection的使用小技巧
Aug 18 Python
Python httplib模块使用实例
Apr 11 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
python如何在终端里面显示一张图片
Aug 17 Python
详解Python进程间通信之命名管道
Aug 28 Python
python实现验证码识别功能
Jun 07 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
python之线程通过信号pyqtSignal刷新ui的方法
Jan 11 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Python爬取微信小程序通用方法代码实例详解
Sep 29 Python
python遍历路径破解表单的示例
Nov 21 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修改时间格式的代码
2011/05/29 PHP
php curl的深入解析
2013/06/02 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
锋利的jQuery jQuery中的DOM操作
2010/03/21 Javascript
JavaScript 学习初步 入门教程
2010/03/25 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
基于jQuery实现仿百度首页选项卡切换效果
2016/05/29 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
2017/02/08 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
Vue filter 过滤器、以及在table中的使用介绍
2020/09/07 Javascript
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Tesserocr库的正确安装方式
2018/10/19 Python
django解决跨域请求的问题
2018/11/11 Python
python属于解释型语言么
2020/06/15 Python
python中常见错误及解决方法
2020/06/21 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
拓展培训心得体会
2014/01/04 职场文书
文秘大学生求职信
2014/02/25 职场文书
公司晚会主持词
2014/03/22 职场文书
中职生自荐信范文
2014/06/15 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript