#glob文件名模式匹配
#作用:使用unix shell规则查找与一个模式匹配文件名
"""
尽管glob api很小,但这个模块很强大,只要程序需要查找文件系统中名字与某种模式匹配一组文件,
就可以使用此模块,要创建一个文件名列表,要求其中各个文件名都某个特定的扩展名,前缀或者中间都有某个共同字符串。
就可以使用glob而不是编写定制代码来扫描目录内容。
glob模式与正则re模式使用正则表达式并不相同,实际上。glob模式遵循标准unix路径扩展规则,只使用
几个特殊字符来实现2个不同的通配符和字符区间,模式规则要应用于文件名中段(在路径分隔符/处截止)。
模式中路径可以是相对/绝对路径,shell变量名波浪线(~)都不会以扩展!!!!!
"""
#示例1
#测试在path/下面的文件
#名称如下path/a/a.txt b.txt c.txt d.txt /b/a.txt(只给个样子)
import glob
#如果未有此文件,请自己创建
path=‘path/a/*.txt‘
print glob.glob(path)
#通配符*:可以匹配一个文件名段的0个或者多个,比如dir/*.*,如上面
#要列出子目录文件,必须在子目录包含在模式中
print ‘path *:‘
for name in glob.glob(pathname=path):
print ‘\t‘,name
#匹配单字字符串
print ‘?‘
path=‘path/a/?.txt‘
for name in glob.glob(pathname=path):
print ‘\t‘,name
#匹配区间字符串(如果区间在[a~z]之间,可以匹配多个中的一个字符串
print ‘[a-z]‘
for path1 in glob.glob(‘path/a/*[a-z0-9A-Z].txt‘):
print path1
#glob官方标准地址:https://docs.python.org/2.7/library/glob.html?highlight=glob#module-glob
#外接连(patten matching notation):http://pubs.opengroup.org/onlinepubs/000095399/utilities/xcu_chap02.html#tag_02_13
#其他:open grop的shell命令语言规范中对文件名模式匹配的解释
#fnmatch请百度或者谷歌