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中 ? : 三元表达式的使用介绍
Oct 09 Python
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
利用Python开发实现简单的记事本
Nov 15 Python
Python使用numpy实现BP神经网络
Mar 10 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
Opencv实现抠图背景图替换功能
May 21 Python
python3安装crypto出错及解决方法
Jul 30 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
Oct 29 Python
解决python3中os.popen()出错的问题
Nov 19 Python
2021年pycharm的最新安装教程及基本使用图文详解
Apr 03 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 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
2014/08/08 PHP
PHP下载远程文件到本地存储的方法
2015/03/24 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
2019/09/11 PHP
一个选择最快的服务器转向代码
2009/04/27 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
python抓取网页中的图片示例
2014/02/28 Python
Python脚本实现集群检测和管理功能
2015/03/06 Python
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
记帐员岗位责任制
2014/02/08 职场文书
求职信名称怎么写
2014/05/26 职场文书
考博导师推荐信范文
2015/03/27 职场文书
新年祝酒词大全
2015/08/11 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS