zoukankan      html  css  js  c++  java
  • python模块整理8glob(类似grep)和fnmatch(匹配文件名)

    一、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

  • 相关阅读:
    javascript 中 "undefined" 与 "is not defined" 分析
    css常用总结
    关于reset.css的疑问:为什么一定要重置浏览器样式?
    一些关于Viewport与device-width的东西~
    JS获取IMG图片高宽
    一个input标签搞定含内外描边及阴影的按钮~
    javascript 取整,取余数
    我刚知道的WAP app中meta的属性
    使用 jquery 获取当前时间的方法
    当前头像跟随着当前内容移动...(修改版)
  • 原文地址:https://www.cnblogs.com/diege/p/2711419.html
Copyright © 2011-2022 走看看