Python:glob模块
glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作(* ? []),*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。
1. glob模块通配符
通配符 | 功能 |
---|---|
* | 匹配0或多个字符 |
** | 匹配所有文件,目录,子目录和子目录里面的文件 (3.5版本新增) |
? | 匹配一个字符,这里与正则表达式? (正则?匹配前面表达式0次或者1次) |
[] | 匹配指定范围内的字符,如: [1-9]匹配1至9内的字符 |
[!] | 匹配不在指定范围内的字符 |
单字通配符?,当前路径文件下以file开头后有一个字符的py文件
for fname in glob.glob("./file?.py"):print(fname)
范围通配符[],当前路径文件下以file开头后一个数字符的py文件
for fname in glob.glob("./file[0-9].py"):print(fname)
范围通配符[],当前路径文件下以file开头后一个非数字符的py文件
for fname in glob.glob("./file[!0-9].py"):print(fname)
2. glob()方法
glob模块的主要方法是glob(),该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径);返回值:返回的文件名只包括当前目录里的文件名,不包括子文件夹里的文件。
比如:
import glob# 绝对路径:
glob.glob(r'c:\*.txt') # 获得C盘下的所有txt文件
glob.glob(r'E:\pic\*\*.jpg') # 获得指定目录下的所有jpg文件# 相对路径:
glob.glob(r'../*.py')# 通配符
glob.glob('./[0-9].*')
# ['./1.gif', './2.txt']glob.glob('*.gif')
# ['1.gif', 'card.gif']glob.glob('?.gif')
# ['1.gif']
官方说明:
glob.glob(pathname)
Return a possibly-empty list of path names that match pathname, which must be a string containing a path specification. pathname can be either absolute (like /usr/src/Python-1.5/Makefile) or relative (like http://www.cnblogs.com/Tools/*/*.gif), and can contain shell-style wildcards. Broken symlinks are included in the results (as in the shell).
3. iglob()方法
使用iglob(),返回迭代器iterator效率更高。获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。
与glob.glob()的区别是:glob.glob()同时获取所有的匹配路径,而 glob.iglob()一次只获取一个匹配路径。这有点类似于.NET中操作数据库用到的DataSet与DataReader。下面是一个简单的例子:
# 父目录中的.py文件
f = glob.iglob(r'../*.py')print(f) # <generator object iglob at 0x00B9FF80>for py in f:print(py)
官方说明:
glob.iglob(pathname)
Return an iterator which yields the same values as glob() without actually storing them all simultaneously.
New in version 2.5.
For example, consider a directory containing only the following files: 1.gif, 2.txt, andcard.gif. glob() will produce the following results. Notice how any leading components of the path are preserved.
Python:glob模块相关推荐
- python glob 模块 map函数
昨晚有了点小想法,想写个小脚本. 用到了 glob 模块 和 map 函数 觉得他们配合起来和不错的. #coding:utf8 import glob print "glob.g ...
- python glob模块的应用
近期项目差不多了,回头学习基础的知识,今天看到了,glob模块感觉很不错,写出来备忘. glob模块可以帮助我们快速的查找到系统的文件,或者查看,不用去调用本身的os,模块了,快捷简便,支持简单正则: ...
- Python之glob模块进行文件匹配及遍历
Python之glob模块进行文件匹配及遍历 glob是python自带的一个操作文件的相关模块,用来查找符合特定规则的文件路径,是python处理文件路径相关问题中常用的包. glob 文件名模式匹 ...
- Python 之glob模块
fnmatch模块是python下的通配符,但是fnmatch只是针对字符串而言,与文件在系统上是否真实存在无关, glob模块是列出符合匹配模式的目录下的文件. >>> impor ...
- Python学习笔记——glob模块【文件、路径操作】
最近做了一个将dicom文件转化为mhd文件的任务,由于要进行批量转化所以遍历文件夹必不可少,刚开始学习python编程,所以把用过的模块用法记录下来,以加深记忆,方便查阅,最后参考前人的博客做了gl ...
- python glob函数_python glob 模块 map函数
昨晚有了点小想法,想写个小脚本. 用到了 glob 模块 和 map 函数 觉得他们配合起来和不错的. #coding:utf8 import glob print "glob. ...
- devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用
异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...
- python glob用法_glob模块使用教程
glob是一个古老的UNIX程序,它用来匹配路径文件名(pathname模式匹配),现在在Linux Shell使用和编程方面,glob还在被广泛使用.Python自带一个glob模块,让我们可以在P ...
- python: glob模块
'''在python中,glob模块是用来查找匹配的文件的在查找的条件中,需要用到Unix shell中的匹配规则:* : 匹配所所有? : 匹配一个字符*.* : 匹配如:[hello.txt,ca ...
最新文章
- Android使用C/C++来保存密钥
- 图解面试题:找出数组中重复的数字?
- 微信小程序侧边栏滑动特效(左右滑动)
- 难得一见的DIY针孔相机
- Java推断文本文件编码格式以及读取
- 【GNN】大热下的 GNN 研究面临哪些“天花板”?未来的重点研究方向又在哪?...
- C++--第2课 - C++中的引用
- 滤波ad毛刺 c语言算法,Σ-Δ型ADC AD7124和AD717x的后置/增强型滤波器
- python中round(18.67、-1)_Python torch.round方法代码示例
- ros::Rate loop_rate(10); loop_rate.sleep(); 在程序中是休眠到一定时间,并不占用CPU时间
- 深入理解Spring IoC的原理(转发)
- DGM: A deep learning algorithm for solving partial differential equations
- Linux 永久修改主机名(转载)
- 计算机考研失败了还能找工作吗,考研失败了怎么办_考研失败还能找工作吗
- 08 量子力学教材推荐,量子力学书单:量子力学、高等量子力学、量子统计、量子信息、路径积分...(适合物理专业本科生、研究生、物理爱好者)
- 【题解】Codeforces 727E. Games on a CD AC自动机
- 基于余弦相似度的改进蝴蝶优化算法
- 眼动在旅游研究中有哪些运用?
- Java面向对象 ----多态
- 模糊数学 3、模糊聚类
热门文章
- Java 洛谷 P1482 Cantor表(升级版)
- element ui 表格中的字太长,想要把多余的字变成...解决方法,一个属性即可
- 第十届蓝桥杯java B组—试题F 特别数的和
- 中南大学计算机085403,What?这些个专业改考数一英一了!
- matlab调用kmeans_K_Means算法的MATLAB实现
- java reactor nio_java reactor与NIO
- 分享 | 光纤光缆布线基础知识及系统设计
- 压缩机电流保护原因是什么?压缩机烧毁常见原因有哪些?
- mysql 数据目录迁移_MySQL数据库数据文件路径迁移步骤
- 成功解决but is 0 and 2 (computed from start 0 and end 9223372 over shape with rank 2 and stride-1)