​glob --- Unix 风格路径名模式扩展​

news2024/11/22 3:18:42

源代码: Lib/glob.py


glob 模块会按照 Unix shell 所使用的规则找出所有匹配特定模式的路径名称,但返回结果的顺序是不确定的。 波浪号扩展不会生效,但 *? 以及用 [] 表示的字符范围将被正确地匹配。 这是通过配合使用 os.scandir() 和 fnmatch.fnmatch() 函数来实现的,而不是通过实际发起调用子 shell。

请注意以点号 (.) 打头的文件只能用同样以点号打头的模式来匹配,这不同于 fnmatch.fnmatch() 或 pathlib.Path.glob()。 (对于波浪号和 shell 变量扩展,请使用 os.path.expanduser() 和 os.path.expandvars()。)

对于字面值匹配,请将原字符用方括号括起来。 例如,'[?]' 将匹配字符 '?'

参见

pathlib 模块提供高级路径对象。

glob.glob(pathname*root_dir=Nonedir_fd=Nonerecursive=Falseinclude_hidden=False

返回一个匹配 pathname 的可能为空的路径名列表,其中的元素必须为包含路径信息的字符串。 pathname 可以是绝对路径 (如 /usr/src/Python-1.5/Makefile) 或相对路径 (如 ../../Tools/*/*.gif),并可包含 shell 风格的通配符。 无效的符号链接也将包括在结果中 (如像在 shell 中一样)。 结果是否排序取决于具体文件系统。 如果某个符合条件的文件在调用此函数期间被移除或添加,是否包括该文件的路径是没有规定的。

如果 root_dir 不为 None,则它应当是指明要搜索的根目录的 path-like object。 它用在 glob() 上与在调用它之前改变当前目录有相同的效果。 如果 pathname 为相对路径,结果将包含相对于 root_dir 的路径。

本函数带有 dir_fd 参数,支持 基于目录描述符的相对路径。

如果 recursive 为真值,则模式 "**" 将匹配目录中的任何文件以及零个或多个目录、子目录和符号链接。 如果模式加了一个 os.sep 或 os.altsep 则将不匹配文件。

如果 include_hidden 为真值,"**" 模式将匹配隐藏目录。

引发一个 审计事件 glob.glob 附带参数 pathnamerecursive

引发一个 审计事件 glob.glob/2,附带参数 pathnamerecursiveroot_dirdir_fd

备注

在一个较大的目录树中使用 "**" 模式可能会消耗非常多的时间。

在 3.5 版更改: 支持使用 "**" 的递归 glob。

在 3.10 版更改: 添加了 root_dir 和 dir_fd 形参。

在 3.11 版更改: 增加了 include_hidden 形参。

glob.iglob(pathname*root_dir=Nonedir_fd=Nonerecursive=Falseinclude_hidden=False)

返回一个 iterator,它会产生与 glob() 相同的结果,但不会实际地同时保存它们。

引发一个 审计事件 glob.glob 附带参数 pathnamerecursive

引发一个 审计事件 glob.glob/2,附带参数 pathnamerecursiveroot_dirdir_fd

在 3.5 版更改: 支持使用 "**" 的递归 glob。

在 3.10 版更改: 添加了 root_dir 和 dir_fd 形参。

在 3.11 版更改: 增加了 include_hidden 形参。

glob.escape(pathname)

转义所有特殊字符 ('?''*' 和 '[')。 这适用于当你想要匹配可能带有特殊字符的任意字符串字面值的情况。 在 drive/UNC 共享点中的特殊字符不会被转义,例如在 Windows 上 escape('//?/c:/Quo vadis?.txt') 将返回 '//?/c:/Quo vadis[?].txt'

3.4 新版功能.

例如,考虑一个包含以下内容的目录:文件 1.gif2.txtcard.gif 以及一个子目录 sub 其中只包含一个文件 3.txt. glob() 将产生如下结果。 请注意路径的任何开头部分都将被保留。:

>>>

>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
>>> glob.glob('**/*.txt', recursive=True)
['2.txt', 'sub/3.txt']
>>> glob.glob('./**/', recursive=True)
['./', './sub/']

如果目录包含以 . 打头的文件,它们默认将不会被匹配。 例如,考虑一个包含 card.gif 和 .card.gif 的目录:

>>>

>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']

参见

模块 fnmatch

Shell 风格文件名(而非路径)扩展

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1305486.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Threejs项目实战之一:汽车外观换肤效果三维展示

目录 最终效果1 创建项目2 安装插件3 编写代码3.1 准备工作3.2 代码编写3.2.1 在template标签中构建html页面3.2.2 在style标签中构建页面样式文件3.2.3 在script标签中编写js代码 最终效果 先看下最终实现的效果 接下来,我们就从创建项目开始,一步一步…

三天精通Selenium Web 自动化 - 测试框架(一)

1 框架结构雏形 返回 新建的一个java project,项目名为autotest,创建如下结构 图1 框架结构雏形 base:里面有个基类 (BaseParpare.java),这个类的主要作用是启动(启动浏览器使用了TetsNG的BeforeClass&am…

P4 Qt基础控件——工具按钮toolButton(上)

前言 🎬 个人主页:ChenPi 🐻推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ 🔥 推荐专栏2: 《Linux C应用编程(概念类)_ChenPi的博客-CSDN博客》✨✨✨ 🌺本篇简介 :这一章我们学一…

披荆斩棘的「矿区无人驾驶」,能否真正打开千亿级市场?

随着2022年备受瞩目的台泥句容矿无人驾驶运输项目硬核落地,以及相关科技公司开放该矿24小时无人矿卡生产运营直播以证明其项目并非在演示,2023年全国开启了大规模矿区无人驾驶商业化落地,堪称矿区无人驾驶元年。虽然我国矿区无人驾驶市场渗透…

【C语言】数据结构——小堆实例探究

💗个人主页💗 ⭐个人专栏——数据结构学习⭐ 💫点击关注🤩一起学习C语言💯💫 导读: 我们在前面学习了单链表和顺序表,以及栈和队列。 今天我们来学习小堆。 关注博主或是订阅专栏&a…

ArkUI组件

目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image:图片展示组件 示例 配置控制授权申请 2、Text:文本显示组件 示例 3、TextInput:文本输入组件 示例 4、Button:按钮组件 5、Slider:滑动条组件 …

【日志技术】附Logback入门教程

文章目录 日志概论日志的体系Logback快速入门日志配置文件配置日志级别 日志概论 什么是日志?其实可以通过下面几个问题来了解的。 系统系统能记住某些数据被谁操作,比如被谁删除了?想分析用户浏览系统的具体情况,比如挖掘用户的…

常州经开区大学生音乐节——常州首届校园乐队比赛

2023年12月9日下午,由江苏省文化馆指导、常州经开区社会事业局主办、常州柒号文化传播有限公司承办、百吉琴行协办的青春制“燥”大学生音乐节——常州首届校园乐队比赛,在常州经开区文化活动中心顺利举办。 常州经开区社会事业局副局长 方姣 为本次比赛…

CPU、内存与硬盘及IO操作

目录 1、概念简介 1.1 CPU(Central Processing Unit,中央处理器) 1.2 硬盘(Hard Disk Drive) 1.3 内存(Memory) 2、计算机程序在进行io读写操作时,这三者的功能和实现原理 1、概…

使用Gson完成java对象的序列化和反序列化

一、前言:json是什么?,Gson是什么? 1.JSON(javaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。 2.Gson 是Google提供的用来在java对象…

手持式心电图机|12道便携式心电图机主板方案定制

心电图机被广泛应用于心脏状况的监测,可以从多个角度观察心脏情况,及时反映患者的病情,以便医生和患者了解。触摸屏使得控制和信息录入变得轻松。心电图报告提供多种语言选择,便于上传信息,实现无纸化报告。同时&#…

现代雷达车载应用——第2章 汽车雷达系统原理 2.2节

经典著作,值得一读,英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.2 汽车雷达架构 从顶层来看,基本的汽车雷达由发射器,接收器和天线组成。图2.2给出了一种简化的单通道连续波雷达结构[2]。这…

三天搞定jmeter入门到入职全套教程之使用Jmeter录制脚本

相对于LoadRunner跟SilkPerformer来说,Jmeter确实有差距,但毕竟前两者太贵,Jmeter胜在免费开源。 先看下LoadRunner录制的脚本如下,美如画,结构清晰,易于修改编辑,比如做关联等。当然目前LoadR…

CSS Grid布局入门:从零开始创建一个网格系统

CSS Grid布局入门:从零开始创建一个网格系统 引言 在响应式设计日益重要的今天,CSS Grid布局系统是前端开发中的一次革新。它使得创建复杂、灵活的布局变得简单而直观。本教程将通过分步骤的方式,让你从零开始掌握CSS Grid,并在…

[湖湘杯 2021 final]MultistaeAgency

文章目录 题目是给了源码,我们先来看web的main.go package mainimport ("bytes""crypto/md5""encoding/json""fmt""io""io/ioutil""log""math/rand""net/http""o…

实验7:索引和视图定义

【实验目的】 1、了解索引和视图的含义 2、熟悉索引和视图的创建规则 3、掌握索引和视图的创建和管理 【实验设备及器材】 1、硬件:PC机; 2、软件:(1)Windows7; (2)Microsoft SQL Server 2012。 【主要内容】 索引的创建、删除、重建…

web如何实现录制音频,满满干货(下篇)

上篇中讲了,web如何实现录制音频,这一篇中,介绍如何播放录制好的音频,以及如何下载和上传音频。 播放 播放,其实就有很多种方法了,可以先上传到云服务器,然后生成链接,使用audio标…

AMC8历年真题在线练习、解析全新按年份独立,更便捷练习和巩固

告诉大家一个好消息! 根据家长朋友们的反馈,六分成长独家制作的AMC8美国数学竞赛的历年真题在练已全新架构和上线,改为了按年份独立一套试卷,这样在线练习加载更快,随需练习也更方便。 先来一睹为快,练习的…

什么是 AWS IAM?如何使用 IAM 数据库身份验证连接到 Amazon RDS(上)

驾驭云服务的安全环境可能很复杂,但 AWS IAM 为安全访问管理提供了强大的框架。在本文中,我们将探讨什么是 AWS Identity and Access Management (IAM) 以及它如何增强安全性。我们还将提供有关使用 IAM 连接到 Amazon Relational Database Service (RDS…

【Week P1】 MNIST手写数字识别

文章目录 一、环境配置1.1 安装环境1.2 设置环境,开始本文内容 二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.1 ⭐ torchvision.datasets.MNIST详解(Line4 & Line9)2.2 ⭐ torch.utils.data.DataLoader详解(Line4 & Line9)2.3 ⭐ sq…