博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python模块整理8-glob(类似grep)和fnmatch(匹配文件名)
阅读量:5222 次
发布时间:2019-06-14

本文共 2039 字,大约阅读时间需要 6 分钟。

一、glob模块

官方文档:http://docs.python.org/library/glob.html#module-glob
glob有点像*nix下面的grep,但又没有那么强大。
1、说明:
glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符,[]匹配指定范围内的字符,如[0-9]匹配数字。
只有两个方法glob和iglob
2、glob
glob.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、iglob
glob.iglob(pathname)
iglob返回的是一个可迭代的对象。
>>> glob.iglob('/root/bin/*')
<generator object iglob at 0xb74b1194>
>>> file=glob.iglob('/root/bin/*')
>>> for i in file:print i
4、两者区别
相同之处:返回的结果都可以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

转载于:https://www.cnblogs.com/diege/archive/2012/10/04/2711419.html

你可能感兴趣的文章
sshpass ssh登录时自动输入密码
查看>>
训练记录
查看>>
【转】ubuntu16.04设置python3为默认及一些库的安装
查看>>
算数几何均值不等式,柯西不等式,琴生Jensen不等式
查看>>
mysql group by的用法 注意
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>
Python中的join()函数的用法
查看>>
Hive教程(1)
查看>>
黑马程序员-指针的初步认识
查看>>
提示未授予用户在此计算机上的请求登录类型
查看>>
Java集合框架学习
查看>>
第16周总结
查看>>
将Cent0S 7的网卡名称eno33改为eth0
查看>>
透明度Opacity多浏览器兼容处理
查看>>
oracle 常用简单命令语句
查看>>
【机器学习_3】常见术语区别
查看>>
Oracle基础 数据库备份和恢复
查看>>
C#编程时应注意的性能处理
查看>>
Java集合--概述
查看>>
1-TwoSum(简单)
查看>>