简单掌握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 10 Python
小结Python用fork来创建子进程注意事项
Jul 03 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
Python实现批量读取word中表格信息的方法
Jul 30 Python
python套接字流重定向实例汇总
Mar 03 Python
浅谈对yield的初步理解
May 29 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
python3爬虫中多线程的优势总结
Nov 24 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 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获取网络上文件
2006/10/09 PHP
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
javascript 模拟点击广告
2010/01/02 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
bootstrap中selectpicker下拉框使用方法实例
2018/03/22 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
将matplotlib绘图嵌入pyqt的方法示例
2020/01/08 Python
python学生管理系统的实现
2020/04/05 Python
Python hashlib模块的使用示例
2020/10/09 Python
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
英国领先的电动可调床制造商:Laybrook
2019/12/26 全球购物
职称自我鉴定
2013/10/15 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
爱情检讨书大全
2014/01/21 职场文书
驾驶员岗位职责
2014/01/29 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python
OpenCV实现常见的四种图像几何变换
2022/04/01 Python
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android