简单掌握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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
Python中if __name__ == '__main__'作用解析
Jun 29 Python
Python调用C++程序的方法详解
Jan 24 Python
手把手教你用python抢票回家过年(代码简单)
Jan 21 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
Jul 19 Python
python实现字符串加密成纯数字
Mar 19 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
python序列化与数据持久化实例详解
Dec 20 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
Python进行特征提取的示例代码
Oct 15 Python
scrapy处理python爬虫调度详解
Nov 23 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
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
Vue如何实现组件的源码解析
2017/06/08 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
浅析Vue 中的 render 函数
2020/02/28 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
jQuery冲突问题解决方法
2021/01/19 jQuery
python快速排序代码实例
2013/11/21 Python
python实现基于两张图片生成圆角图标效果的方法
2015/03/26 Python
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
python实现自动更换ip的方法
2015/05/05 Python
python基础教程之匿名函数lambda
2017/01/17 Python
python实现八大排序算法(2)
2017/09/14 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
Python连接Redis的基本配置方法
2018/09/13 Python
pyqt5实现登录界面的模板
2020/05/30 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
校领导推荐信
2013/11/01 职场文书
丑小鸭教学反思
2014/02/03 职场文书
党支部综合考察材料
2014/05/19 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android