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 FTP操作类代码分享
May 13 Python
Python常用列表数据结构小结
Aug 06 Python
python基于queue和threading实现多线程下载实例
Oct 08 Python
python通过exifread模块获得图片exif信息的方法
Mar 16 Python
Python Flask基础教程示例代码
Feb 07 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
Python序列化模块JSON与Pickle
Jun 05 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/08/03 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
2014/01/09 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
利用Vconsole和Fillder进行移动端抓包调试方法
2019/03/05 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
2019/08/27 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python实现简单石头剪刀布游戏
2021/01/20 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
CSS3 animation实现逐帧动画效果
2016/06/02 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
学校就业推荐信范文
2014/05/19 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
golang slice元素去重操作
2021/04/30 Golang
Python集合set()使用的方法详解
2022/03/18 Python
flex弹性布局详解
2022/03/20 HTML / CSS