简单掌握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实现百度关键词排名查询
Mar 30 Python
python常见数制转换实例分析
May 09 Python
利用python模拟实现POST请求提交图片的方法
Jul 25 Python
django表单实现下拉框的示例讲解
May 29 Python
python生成带有表格的图片实例
Feb 03 Python
Django model 中设置联合约束和联合索引的方法
Aug 06 Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
python 最简单的实现适配器设计模式的示例
Jun 30 Python
Python实现快速大文件比较代码解析
Sep 04 Python
python空元组在all中返回结果详解
Dec 15 Python
Python中使用tkFileDialog实现文件选择、保存和路径选择
May 20 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 远程关机操作的代码
2008/12/05 PHP
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
Promise扫盲贴
2019/06/24 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
Python表示矩阵的方法分析
2017/05/26 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
Python3 JSON编码解码方法详解
2019/09/06 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
Python字符串查找基本操作代码案例
2020/10/27 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
用Python写一个for循环的例子
2016/07/19 面试题
保险公司年会主持词
2014/03/22 职场文书
党务公开方案
2014/05/06 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
2014年店长工作总结
2014/11/17 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
使用canvas仿Echarts实现金字塔图的实例代码
2021/11/11 HTML / CSS
基于Python实现西西成语接龙小助手
2022/08/05 Golang