python如何用glob模块匹配路径

2024-02-11 10:36
文章标签 python 模块 路径 匹配 glob

本文主要是介绍python如何用glob模块匹配路径,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • glob
    • fnmatch

刷完这60个标准库模块,成为Python骨灰级玩家

glob模块是Python的一个标准库,用于在文件系统中查找文件名匹配特定模式的文件路径。

可以使用glob模块进行文件系统的通配符匹配,类似于在命令行中使用*和?通配符进行文件查找。

glob

glob可以通过通配符查找路径。例如

>>> import glob
>>> for i in range(10):
...   temp = open(str(i)+'.py','w')
...   temp.close()
...
>>> glob.glob(r'E:\Documents\00\1101\*.py')

返回值如下


[‘E:\Documents\00\1101\0.py’, ‘E:\Documents\00\1101\1.py’, ‘E:\Documents\00\1101\2.py’, ‘E:\Documents\00\1101\3.py’, ‘E:\Documents\00\1101\4.py’, ‘E:\Documents\00\1101\5.py’, ‘E:\Documents\00\1101\6.py’, ‘E:\Documents\00\1101\7.py’, ‘E:\Documents\00\1101\8.py’, ‘E:\Documents\00\1101\9.py’]


查看源码可以发现,glob是通过list(iglob(**))实现的,iglob返回一个符合要求路径的迭代器,glob将其转化为列表。

>>> it = glob.iglob(r'E:\Documents\00\1101\*.py')
>>> next(it)
'E:\\Documents\\00\\1101\\0.py'
>>> next(it)
'E:\\Documents\\00\\1101\\1.py'
>>> next(it)
'E:\\Documents\\00\\1101\\2.py'
>>> list(it)
['E:\\Documents\\00\\1101\\3.py', 'E:\\Documents\\00\\1101\\4.py', 'E:\\Documents\\00\\1101\\5.py', 'E:\\Documents\\00\\1101\\6.py', 'E:\\Documents\\00\\1101\\7.py', 'E:\\Documents\\00\\1101\\8.py', 'E:\\Documents\\00\\1101\\9.py']

fnmatch

除了*可以被转义之外,glob还可以将[]?等字符进行转义,其方法结合了os.scandir()fnmatch.fnmatch()函数,例如

>>> glob.glob(r'E:\Documents\00\1101\[1-5].py')

[‘E:\Documents\00\1101\1.py’, ‘E:\Documents\00\1101\2.py’, ‘E:\Documents\00\1101\3.py’, ‘E:\Documents\00\1101\4.py’, ‘E:\Documents\00\1101\5.py’]


fnmatch是python中的文件夹匹配模块,其匹配规则为

模式*?[seq][!seq]
含意所有字符任何单个字符seq中任何字符不在seq中的字符

fnmatch中封装了一个正则表达式转化函数,可将fnmatch的匹配规则转为正则表达式的匹配规则,例如

>>> fnmatch.translate('[1-5]*.py')
'(?s:[1-5].*\\.py)\\Z'

这篇关于python如何用glob模块匹配路径的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/699567

相关文章

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环