您的位置:首页 > 编程语言 > Python开发

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

2018-03-08 19:42 776 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: