简单掌握Python中glob模块查找文件路径的用法


Posted in Python onJuly 05, 2016

glob使用UNIX shell规则查找与一个模式匹配的文件名。只要程序需要查找文件系统中名字与某个模式匹配的一组文件,就可以使用这个模块。
glob的模式规则与re模块使用的正则表达式不相同。glob模式遵循标准UNIX路径扩展规则。只是用几个特殊字符来实现两个不同的通配符和字符区间。模式规则要应用于文件名中的段。模式中的路径可以是相对路径或绝对路径。
shell变量名和波浪线都不会扩展。

基本用法

1.glob.glob(pathname), 返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。
2.glob.iglob(pathname), 获取一个可编历对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而glob.iglob一次只获取一个匹配路径。

3.eg:

import glob 
 
print glob.glob(r'E:\*\*.doc') 
print glob.glob(r'.\*.py') 
 
f = glob.iglob(r'.\*.py') 
 
for py in f: 
  print py

运行结果:

['E:\\test_file\\adplus.doc'] 
['.\\perfrom_test.py', '.\\pyTest.py', '.\\simulation_login.py', '.\\widget.py', '.\\__init__.py'] 
.\perfrom_test.py 
.\pyTest.py 
.\simulation_login.py 
.\widget.py 
.\__init__.py

下面我们分知识点详细来讲:

通配符
星号匹配一个文件名段中的0个或多个字符。

import glob
for name in glob.glob('tmp/*'):
  print name

这个模式会匹配所有的路径名,但是不会递归搜索到子目录。

>>> ================================ RESTART ================================
>>> 
tmp\checklog_status.sh
tmp\check_Adwords_v1.2.sh
tmp\check_traffic.sh
tmp\cut_nginxlog_V1.2.sh
tmp\ip_conn.sh
tmp\ip_keepalive.sh
tmp\nagios使用手册.doc
tmp\nmap_ping
tmp\nrpe_install-1.3.sh
tmp\one
tmp\syn.sh
tmp\zabbix_agentd_2.0.10_win_V1.2.bat
tmp\zabbix_agentd_2.0.8_V1.3.sh
tmp\工作内容.doc

要列出子目录中的文件,必须把子目录包含在模式中。

import glob
print 'Name explicitly:'
for name in glob.glob('tmp/one/*'):
  print '\t', name
print 'Name with wildcard:'
for name in glob.glob('tmp/*/*'):
  print '\t', name

第一种情况显示列出子目录名,第二种情况则依赖一个通配符查找目录。

>>> ================================ RESTART ================================
>>> 
Name explicitly:
  tmp/one\another.txt
  tmp/one\file.txt
Name with wildcard:
  tmp\one\another.txt
  tmp\one\file.txt

单字节通配符
问号会匹配文件名中该位置的单个字符。

import glob
for name in glob.glob('tmp/chec?_traffic.sh'):
  print name
>>> ================================ RESTART ================================
>>> 
tmp\check_traffic.sh

   

字符区间
使用字符区间([a-z]),可以匹配多个字符中的一个字符。

import glob
for name in glob.glob('tmp/one/[a-z]*'):
  print name

区间可以匹配所有小写字母。   

>>> ================================ RESTART ================================
>>> 
tmp/one\another.txt
tmp/one\file.txt
Python 相关文章推荐
用python处理MS Word的实例讲解
May 08 Python
python获取代码运行时间的实例代码
Jun 11 Python
linux安装Python3.4.2的操作方法
Sep 28 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
Python中list的交、并、差集获取方法示例
Aug 01 Python
django 配置阿里云OSS存储media文件的例子
Aug 20 Python
关于Pytorch的MLP模块实现方式
Jan 07 Python
django使用JWT保存用户登录信息
Apr 22 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
什么是python类属性
Jun 10 Python
python Yaml、Json、Dict之间的转化
Oct 19 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
Python的shutil模块中文件的复制操作函数详解
Jul 05 #Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 #Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 #Python
Python实现代码统计工具(终极篇)
Jul 04 #Python
在win和Linux系统中python命令行运行的不同
Jul 03 #Python
win10系统中安装scrapy-1.1
Jul 03 #Python
使用Python从有道词典网页获取单词翻译
Jul 03 #Python
You might like
第十节--抽象方法和抽象类
2006/11/16 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
smarty内置函数section的用法
2015/01/22 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
jQuery 选择器、DOM操作、事件、动画
2010/11/25 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
Bootstrap表单使用方法详解
2017/02/17 Javascript
一个小时快速搭建微信小程序的方法步骤
2019/04/15 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
解决vue项目中某一页面不想引用公共组件app.vue的问题
2020/08/14 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
Python探索之ModelForm代码详解
2017/10/26 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
python与js主要区别点总结
2020/09/13 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
武汉东之林科技有限公司机试
2013/09/17 面试题
学生会干部自荐信
2014/02/04 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
匿名检举信范文
2015/03/02 职场文书
2015年父亲节寄语
2015/03/23 职场文书