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