简单掌握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多进程并发与多线程并发编程实例总结
Feb 08 Python
python读取word文档,插入mysql数据库的示例代码
Nov 07 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
python实现烟花小程序
Jan 30 Python
python3.6实现学生信息管理系统
Feb 21 Python
浅谈python新式类和旧式类区别
Apr 26 Python
python SocketServer源码深入解读
Sep 17 Python
django 简单实现登录验证给你
Nov 06 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
python 基于DDT实现数据驱动测试
Feb 18 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
php单文件版在线代码编辑器
2015/03/12 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
2015/03/19 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
php新建文件的方法实例
2019/09/26 PHP
PHP 实现缩略图
2021/03/09 PHP
javascript编程起步(第五课)
2007/01/10 Javascript
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
举例讲解Python中的算数运算符的用法
2015/05/13 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
浅谈关于html5中图片抛物线运动的一些心得
2018/01/09 HTML / CSS
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
艺术专业大学生自我评价
2013/09/22 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
保险专业自荐信范文
2014/02/20 职场文书
护理学专业求职信
2014/06/29 职场文书
股指期货心得体会
2014/09/10 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
php远程请求CURL案例(爬虫、保存登录状态)
2021/04/01 PHP
PyTorch的Debug指南
2021/05/07 Python