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模块相关推荐

  1. python glob 模块 map函数

    昨晚有了点小想法,想写个小脚本. 用到了  glob 模块  和  map 函数   觉得他们配合起来和不错的. #coding:utf8 import glob print "glob.g ...

  2. python glob模块的应用

    近期项目差不多了,回头学习基础的知识,今天看到了,glob模块感觉很不错,写出来备忘. glob模块可以帮助我们快速的查找到系统的文件,或者查看,不用去调用本身的os,模块了,快捷简便,支持简单正则: ...

  3. Python之glob模块进行文件匹配及遍历

    Python之glob模块进行文件匹配及遍历 glob是python自带的一个操作文件的相关模块,用来查找符合特定规则的文件路径,是python处理文件路径相关问题中常用的包. glob 文件名模式匹 ...

  4. Python 之glob模块

    fnmatch模块是python下的通配符,但是fnmatch只是针对字符串而言,与文件在系统上是否真实存在无关, glob模块是列出符合匹配模式的目录下的文件. >>> impor ...

  5. Python学习笔记——glob模块【文件、路径操作】

    最近做了一个将dicom文件转化为mhd文件的任务,由于要进行批量转化所以遍历文件夹必不可少,刚开始学习python编程,所以把用过的模块用法记录下来,以加深记忆,方便查阅,最后参考前人的博客做了gl ...

  6. python glob函数_python glob 模块 map函数

    昨晚有了点小想法,想写个小脚本. 用到了  glob 模块  和  map 函数   觉得他们配合起来和不错的. #coding:utf8 import  glob print "glob. ...

  7. devi into python 笔记(五)异常 文件操作 sys os glob模块简单实用

    异常: Java异常: try catch块处理异常,throw引发异常. Python异常: try except块处理异常,raise引发异常. 异常如果不主动处理,则会交给Python中的缺省处 ...

  8. python glob用法_glob模块使用教程

    glob是一个古老的UNIX程序,它用来匹配路径文件名(pathname模式匹配),现在在Linux Shell使用和编程方面,glob还在被广泛使用.Python自带一个glob模块,让我们可以在P ...

  9. python: glob模块

    '''在python中,glob模块是用来查找匹配的文件的在查找的条件中,需要用到Unix shell中的匹配规则:* : 匹配所所有? : 匹配一个字符*.* : 匹配如:[hello.txt,ca ...

最新文章

  1. Android使用C/C++来保存密钥
  2. 图解面试题:找出数组中重复的数字?
  3. 微信小程序侧边栏滑动特效(左右滑动)
  4. 难得一见的DIY针孔相机
  5. Java推断文本文件编码格式以及读取
  6. 【GNN】大热下的 GNN 研究面临哪些“天花板”?未来的重点研究方向又在哪?...
  7. C++--第2课 - C++中的引用
  8. 滤波ad毛刺 c语言算法,Σ-Δ型ADC AD7124和AD717x的后置/增强型滤波器
  9. python中round(18.67、-1)_Python torch.round方法代码示例
  10. ros::Rate loop_rate(10); loop_rate.sleep(); 在程序中是休眠到一定时间,并不占用CPU时间
  11. 深入理解Spring IoC的原理(转发)
  12. DGM: A deep learning algorithm for solving partial differential equations
  13. Linux 永久修改主机名(转载)
  14. 计算机考研失败了还能找工作吗,考研失败了怎么办_考研失败还能找工作吗
  15. 08 量子力学教材推荐,量子力学书单:量子力学、高等量子力学、量子统计、量子信息、路径积分...(适合物理专业本科生、研究生、物理爱好者)
  16. 【题解】Codeforces 727E. Games on a CD AC自动机
  17. 基于余弦相似度的改进蝴蝶优化算法
  18. 眼动在旅游研究中有哪些运用?
  19. Java面向对象 ----多态
  20. 模糊数学 3、模糊聚类

热门文章

  1. Java 洛谷 P1482 Cantor表(升级版)
  2. element ui 表格中的字太长,想要把多余的字变成...解决方法,一个属性即可
  3. 第十届蓝桥杯java B组—试题F 特别数的和
  4. 中南大学计算机085403,What?这些个专业改考数一英一了!
  5. matlab调用kmeans_K_Means算法的MATLAB实现
  6. java reactor nio_java reactor与NIO
  7. 分享 | 光纤光缆布线基础知识及系统设计
  8. 压缩机电流保护原因是什么?压缩机烧毁常见原因有哪些?
  9. mysql 数据目录迁移_MySQL数据库数据文件路径迁移步骤
  10. 成功解决but is 0 and 2 (computed from start 0 and end 9223372 over shape with rank 2 and stride-1)