幽谷奇峰 | 燕雀鸣幽谷,鸿鹄掠奇峰

Python2标准库之glob--Unix风格的路径匹配


glob 模块的功能,就是允许接受一个 Unix 式的文件名格式表达式,即可以使用 *? 等通配符。该模块会查找出所有符合指定模式的文件(与正则表达式类似)。下表列出了该模块支持的匹配规则:

规则 含义
* 匹配所有
? 匹配任何单个字符
[seq] 匹配任何包含在 seq 中的字符
[!seq] 匹配任何不在 seq 中的字符
  • glob.glob(pathname) 返回所有匹配的路径(包括无效的符号链接)的字符串列表,无匹配时为空。

  • glob.iglob(pathname) 返回一个迭代器。与 glob.glob() 的区别在于:后者是一次性获取所有匹配的路径,然后保存在一个列表里。而前者一次只获取一个匹配路径,然后通过迭代器就可以得到所有的匹配路径。

示例1:

1
2
3
4
5
6
7
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']

示例2:

1
2
3
4
5
6
7
8
9
import glob

#获取指定目录下的所有图片
print glob.glob(r"E:\Picture\*\*.jpg")

#获取父目录中的.py文件
f = glob.iglob(r'../*.py')
for py in f:
    print py

本作品由 Yysfire 创作,采用知识共享许可协议进行许可。转载时请在显著位置标明本文永久链接:
http://yysfire.github.io/python/python2-standard-library-glob.html


相关文章


最后修改
2014-06-29 18:15
发表时间
2012-12-06 23:48
本文标签
glob 1 Python 3
关注我

侧栏导航