python中的glob模块函数:glob,iglob和escape的使用

python的glob模块

glob 是 Unix style pathname pattern expansion 的模块,也就是对符合某些要求的文件和文件夹路径进行查找的模块,返回的是unix style的形式,当然对于Windows的系统,会对反斜线‘\’加上转义便于阅读。

glob模块中的函数

根据python的documentation,glob里共有三个函数:

glob.glob(pathname,*,recursive=False)

返回指定路径和搜索条件下得到的文件列表,list,可能是空的。pathname中支持通配符,和re中的正则表达不一样。
glob中,*星号表示匹配0到多个字符,?问号表示匹配一个字符,[ ]中括号里面表示范围,和re相同。另外,recursive参数默认false,指的是对pathname制定的那一层扫描得到结果后就返回,如果recursive=True,那么可以用两个星号 ** 遍历制定的路径的所有子目录和子目录里的文件。另外,glob函数默认不搜索以· 点号开头的文件和路径,如果要求的话需要单独写个点号,比如 '*.gif' 就不包含比如:.test.gif ,如果想要得到这个,则通配符应该:'.*.gif'

glob.iglob(pathname,recursive=False)

用法基本同上,返回一个python的generator,从而可以依次取值。应该对于处理目录较多的情况比较好,可以节省空间。

glob.escape(pathname)

escape可以忽略(escape)所有的特殊字符,就是星号,问号,中括号。

简单测试

import glob
glob.iglob('*.csv')
Out[88]: <generator object iglob at 0x7f267821a780>
glob.glob('*.csv')
Out[89]: 
['first_train_index_20180131.csv',
 'first_test_index_20180131.csv',
 'baseline_submission.csv']

reference:https://docs.python.org/3.5/library/glob.html#module-glob

2018年03月08日19:42:43

posted @ 2018-03-08 19:43  毛利小九郎  阅读(936)  评论(0编辑  收藏  举报