python使用glob检索文件的操作


Posted in Python onMay 20, 2021

一、检索当前目录下所有文件、文件夹

from glob import glob
glob('./*')
Output: ['./0a.wav', './aaa', './1b.wav', './1a.wav', './0b.wav'] #返回一个list

二、检索当前目录下指定后缀名文件

假设我们需要获取当前文件夹下所有后缀名为".wav"的文件,

from glob import glob
glob('./*.wav')
Output: ['./0a.wav', './1b.wav', './1a.wav', './0b.wav'] #返回一个包含".wav"文件路径的list

二、检索当前目录下包含指定字符文件

假设我们需要获得所有包含"a"字符的".wav"文件,

from glob import glob
glob('./*a*.wav')
Output: ['./0a.wav', './1a.wav'] #返回一个包含".wav"文件路径的list

补充:Python 中的glob模块使用笔记(用它来遍历文件夹、文件真的很方便)

glob模块简介

glob是python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作。

glob中支持的通配符有三种:

‘*' 匹配0个或多个字符
‘?' 仅匹配一个字符
‘[]' 匹配指定范围内的字符,如[0-9]匹配数字

用图片中的文件夹作为例子进行演示

python使用glob检索文件的操作

一、glob.glob的使用:

该方法返回所有匹配的文件路径列表。

该方法需要一个参数用来指定要匹配的文件路径(字符串类型)绝对路径、相对路径。

1.匹配某指定路径下后缀为.exe的文件(绝对路径)

In:
from glob import glob

file = glob(r'D:\masm\*.EXE')
print(type(file))
print(file)

Out:
<class 'list'>
['D:\\masm\\CREF.EXE', 'D:\\masm\\debug.exe',
 'D:\\masm\\DEBUG32.EXE', 'D:\\masm\\ERROUT.EXE',
  'D:\\masm\\EXEMOD.EXE', 'D:\\masm\\EXEPACK.EXE',
   'D:\\masm\\LIB.EXE', 'D:\\masm\\LINK.EXE',
    'D:\\masm\\MASM.EXE', 'D:\\masm\\SETENV.EXE',
     'D:\\masm\\TEST2.EXE', 'D:\\masm\\TEST3.EXE',
      'D:\\masm\\TEST4.EXE', 'D:\\masm\\TEST5.EXE',
       'D:\\masm\\TEST6.EXE']

2.匹配某指定路径下的所有文件(绝对路径)

In:
from glob import glob

file = glob(r'D:\masm\*\*')
print(type(file))
print(file)

Out:
<class 'list'>
['D:\\masm\\work\\hello.asm', 'D:\\masm\\work\\HELLO.OBJ',
 'D:\\masm\\work\\test1.asm', 'D:\\masm\\work\\TEST1.OBJ',
  'D:\\masm\\work\\test2.asm', 'D:\\masm\\work\\TEST2.OBJ', 
  'D:\\masm\\work\\test3.asm', 'D:\\masm\\work\\TEST3.OBJ',
   'D:\\masm\\work\\test4.asm', 'D:\\masm\\work\\TEST4.OBJ', 
   'D:\\masm\\work\\two']

3.使用相对路径来进行匹配

'.' 指代当前目录

'. . ' 指代当前目录的上一级目录

In:
from glob import glob

file = glob(r'..\*')
print(type(file))
print(file)

Out:
<class 'list'>
['..\\12306', '..\\Auto connection school network', '..\\cache', 
'..\\class', '..\\exercise_1.py', '..\\exercise_2-2.py', 
'..\\exercise_2-3.py', '..\\exercise_2.py', '..\\regular',
 '..\\taobao', '..\\test.py', '..\\testglob', '..\\UDPClient']

python使用glob检索文件的操作

二、glob.iglob的使用

获取一个生成器( generator)对象,使用它可以逐个获取匹配的文件路径名。与glob.glob()的区别是:glob.glob同时获取所有的匹配路径,而 glob.iglob一次只获取一个匹配路径。

In:
from glob import iglob

file = iglob(r'..\*.py')
print(type(file))
print(file)

n=0
for i in file:
    n=n+1
    print(str(n),i)
Out:
<class 'generator'>
<generator object _iglob at 0x000001AEBE4D3B10>
1 ..\exercise_1.py
2 ..\exercise_2-2.py
3 ..\exercise_2-3.py
4 ..\exercise_2.py
5 ..\test.py

通过示例中的for循环可以看到,生成器对象会依次给出要匹配路径下的文件。

Python 相关文章推荐
python 性能优化方法小结
Mar 31 Python
Python中生成Epoch的方法
Apr 26 Python
Python实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
python3使用requests模块爬取页面内容的实战演练
Sep 25 Python
深入理解Python分布式爬虫原理
Nov 23 Python
Python 快速实现CLI 应用程序的脚手架
Dec 05 Python
Python编程求质数实例代码
Jan 31 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
Python之列表的插入&amp;替换修改方法
Jun 28 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
python opencv通过按键采集图片源码
python 如何执行控制台命令与操作剪切板
教你怎么用Python生成九宫格照片
用 Python 元类的特性实现 ORM 框架
May 19 #Python
浅谈Python 中的复数问题
May 19 #Python
Python机器学习之基础概述
Python机器学习之PCA降维算法详解
You might like
微信公众平台实现获取用户OpenID的方法
2015/04/15 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
prototype Element学习笔记(篇二)
2008/10/26 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
JavaScript arguments 多参传值函数
2010/10/24 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
微信小程序 页面传值详解
2017/03/10 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
vue router2.0二级路由的简单使用
2017/07/05 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
Python实现周期性抓取网页内容的方法
2015/11/04 Python
Python中的__slots__示例详解
2017/07/06 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
python读取目录下最新的文件夹方法
2018/12/24 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
罗技英国官方网站:Logitech UK
2020/11/03 全球购物
2014年国培研修感言
2014/03/09 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
英文辞职信范文
2015/05/13 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题