简单掌握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在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
Sep 08 Python
Python遍历pandas数据方法总结
Feb 09 Python
python pandas dataframe 行列选择,切片操作方法
Apr 10 Python
Python简单定义与使用二叉树示例
May 11 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
基于YUV 数据格式详解及python实现方式
Dec 09 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
Python基于pip实现离线打包过程详解
May 15 Python
Python手动或自动协程操作方法解析
Jun 22 Python
使用Django框架创建项目
Jun 10 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
php 函数中使用static的说明
2012/06/01 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
js 多浏览器分别判断代码
2010/04/01 Javascript
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
JS维吉尼亚密码算法实现代码
2010/11/09 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
jquery 使用点滴函数代码
2011/05/20 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
window.onload绑定多个事件的两种解决方案
2016/05/15 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
python计算方程式根的方法
2015/05/07 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
教师岗位聘任书范文
2014/03/29 职场文书
语文课外活动总结
2014/08/27 职场文书
我的职业生涯规划:打造自己的运动帝国
2014/09/18 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
法务专员岗位职责
2015/02/14 职场文书
面试通知单大全
2015/04/20 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技