python学习笔记glob模块

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会列出所有的文件名的列表,包括文件夹,但是不包含路径的,需要自己进行匹配和过滤。

原文地址:https://www.cnblogs.com/chybot/p/4557709.html