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 相关文章推荐
深入理解Python3 内置函数大全
Nov 23 Python
Django框架的使用教程路由请求响应的方法
Jul 03 Python
django缓存配置的几种方法详解
Jul 16 Python
python 使用值来排序一个字典的方法
Nov 16 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
详解django实现自定义manage命令的扩展
Aug 13 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
解决TensorFlow调用Keras库函数存在的问题
Jul 06 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 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
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
Python 命令行非阻塞输入的小例子
2013/09/27 Python
Python Sleep休眠函数使用简单实例
2015/02/02 Python
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
Python实现基本数据结构中队列的操作方法示例
2017/12/04 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
分享一个python的aes加密代码
2020/12/22 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
恶意软件的定义
2014/11/12 面试题
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
生产主管岗位职责
2013/11/10 职场文书
移风易俗倡议书
2014/04/15 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
文明单位申报材料
2014/12/23 职场文书
实习生辞职信范文
2015/03/02 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
Tomcat安装使用及部署Web项目的3种方法汇总
2022/08/14 Servers