一、glob模块
官方文档:http://docs.python.org/library/glob.html#module-globglob有点像*nix下面的grep,但又没有那么强大。1、说明:glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。只有两个方法glob和iglob2、globglob.glob(pathname)该方法返回所有匹配的文件路径列表,该方法需要一个参数用来指定匹配的路径字符串(本字符串可以为绝对路径也可以为相对路径),其返回的文件名只包括指定目录里的文件名,不包括子文件夹里的文件。未指定目录默认为当前目录。比如:glob.glob(r'c:\*.txt')我这里就是获得C盘下的所有txt文件glob.glob(r'E:\pic\*\*.jpg')获得指定目录下的所有jpg文件使用相对路径:glob.glob(r'../*.py')>>> glob.glob('/root/bin/*') ['/root/bin/check_http.sh~', '/root/bin/gzip_allvhosts_log.sh', '/root/bin/nginx_ctrl', '/root/bin/memcached_ctrol.sh', '/root/bin/pxe-svr_conf.sh', '/root/bin/Shell_center', '/root/bin/pxe-svr_conf.sh~', '/root/bin/dhcpd.conf', '/root/bin/rsync_client.sh', '/root/bin/mysql_backup_full.sh', '/root/bin/centos-web_conf.sh', '/root/bin/gzip_allvhosts_log.sh_bak_20120514', '/root/bin/iptables_init.sh', '/root/bin/iptables_init.sh~', '/root/bin/centos-web_conf.sh~', '/root/bin/check_http.sh']>>> for i in glob.glob('/root/bin/*'):print i 3、iglobglob.iglob(pathname)iglob返回的是一个可迭代的对象。>>> glob.iglob('/root/bin/*')<generator object iglob at 0xb74b1194>>>> file=glob.iglob('/root/bin/*') >>> for i in file:print i4、两者区别相同之处:返回的结果都可以for遍历>>> for i in glob.iglob('/root/bin/*'):print i >>> for i in glob.glob('/root/bin/*'):print i 不同之处glob返回的是一个列表。iglob返回的是一个可迭代的对象。官方实例>>> import glob>>> glob.glob('./[0-9].*')['./1.gif', './2.txt']>>> glob.glob('*.gif')['1.gif', 'card.gif']>>> glob.glob('?.gif')['1.gif']二、fnmatch模块
使用模式来匹配文件名fnmatch(name, pat) fnmatch(文件夹, 匹配模式)>>> import os>>> from DiskWalk import DiskWalk>>> from fnmatch import fnmatch>>> files=DiskWalk('/tmp')>>> for file in files.diskPaths():... if fnmatch(file,"*.png"):... print file... /tmp/pygdchart2alpha2/doc/images/simple.png/tmp/pygdchart2alpha2/doc/images/area.png/tmp/pygdchart2alpha2/doc/images/area3D.png/tmp/pygdchart2alpha2/doc/images/bar.png