python学习笔记glob模块

a 夏天 提交于 2020-03-14 01:02:25

python有许多的类库,现将学习记录下来,以供以后回顾复习:

1.glob模块

   用于文件名操作,匹配指定目录下的文件,返回的是目录加文件名,常用的有两个函数:

   glob(pattern),返回匹配的文件的列表。

   iglob(pattern),返回生成器,可以遍历匹配的文件。

   示例代码:   

glob()bogon:datasets xuguoqiang$ ls
matrixA.txt    matrixB.txt    test        words.txt
files = glob.glob('*.txt')
>>> for file in files:
...      print file
matrixA.txt
matrixB.txt
words.txt
>>> print files
['matrixA.txt', 'matrixB.txt', 'words.txt']
iglob():>>> files = glob.iglob('*.txt')
>>> print files
<generator object iglob at 0x1101d9dc0>
>>> for file in files:
...     print file
matrixA.txt
matrixB.txt
words.txt
指定相对路径的结果>>> import glob
>>> print glob.glob(r'../*.txt')
['../test.txt']

可以看出如果pattern指定为相对路径或绝对路径,返回的文件也会是相对路径或绝对路径。根据实际需要使用。

注意glob使用的通配符: 

1、glob使用的通配符只有三个,分别是 * ? []

2、在glob中,* ? 匹配的是字符,而在emeditor中匹配的是数量。

3、在glob中,不包括用[!...],而在emedior中不包括则用[^...]

补充,使用os的listdir也可以得到类似的结果:

>>> import os
>>> dir = r'./'
>>> print os.listdir(dir)
['matrixA.txt', 'matrixB.txt', 'test', 'words.txt']

区别在于,listdir会列出所有的文件名的列表,包括文件夹,但是不包含路径的,需要自己进行匹配和过滤。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!