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运行报错UnicodeDecodeError的解决方法
Jun 07 Python
Python 判断是否为质数或素数的实例
Oct 30 Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 Python
Python中安装easy_install的方法
Nov 18 Python
python读写配置文件操作示例
Jul 03 Python
kali中python版本的切换方法
Jul 11 Python
详解python播放音频的三种方法
Sep 23 Python
python调用Matplotlib绘制分布点图
Oct 18 Python
Python类成员继承重写的实现
Sep 16 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
Python制作春联的示例代码
Jan 22 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冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
Javascript编程中几种继承方式比较分析
2015/11/28 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
vue页面使用阿里oss上传功能的实例(一)
2017/08/09 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
5分钟教你用nodeJS手写一个mock数据服务器的方法
2019/09/10 NodeJs
js new Date()实例测试
2019/10/31 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
Unicode和Python的中文处理
2017/03/19 Python
Python决策树和随机森林算法实例详解
2018/01/30 Python
python list删除元素时要注意的坑点分享
2018/04/18 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python nmap实现端口扫描器教程
2020/05/28 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
英国赛车、汽车改装和摩托车零件购物网站:Demon Tweeks
2018/10/29 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
国贸专业个人求职信分享
2013/12/04 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
花坛标语大全
2014/06/30 职场文书
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL