python glob.glob使用

article/2025/10/28 1:31:11

           使用了下thrift,出现了一些路径问题。原来是glob.glob函数捣的鬼。所以扒了下英文文档,有些收获。下面分享。

函数功能:匹配所有的符合条件的文件,并将其以list的形式返回。

一.glob.glob的介绍和一些实现细节

        1.glob.glob函数的参数是字符串。这个字符串的书写和我们使用linux的shell命令相似,或者说基本一样。也就是说,只要我们按照平常使用cd命令时的参数就能够找到我们所需要的文件的路径。字符串中可以包括“*”、“?”和"["、"]",其中“*”表示匹配任意字符串,“?”匹配任意单个字符,[0-9]与[a-z]表示匹配0-9的单个数字与a-z的单个字符。

        2.glob.glob不支持“~”波浪符号,这个符号在linux代表当前用户的home目录。

        3.官方文档上说“This is done by using the os.listdir() and fnmatch.fnmatch() functions in concert, and not by actually invoking a subshell”,(这个函数是通过配合使用os.listdir()与fnmatch.fnmatch()实现的,而非调用一个子shell)。但是在他的源代码中没有找到这两个函数的调用痕迹。

        4.官方源代码中,返回的是一个list,但是它是使用iterator实现的。所以,它的内存占用是常数级别的。注意,他这里使用了yield关键字来实现iterator。

这是一些细节问题。

二.使用glob.glob获得文件路径

1.在ubuntu下,获得当前文件夹下的文件。如,当前路径为/home/,在这里有文件夹chen,文件sssde.ini。如图:

        参数为相对路径“./*”或者“*”获得所有文件路径。如果文件名是已知的,那么参数为“./filename”或者“filename”如下:
import glob
glob.glob("*")

        所得结果如下:



2.怎么获得当前目录的某个子目录的文件呢?
        子文件也属于相对路径,所以使用“./*/filename”或者“*/filename”。这里一个“*/”代表下一层文件夹。如当前我们在“/”下,要找/home/chen文件夹下的文件“1.sh”。参数是“*/*/1.sh”,效果如下:


3. 如果当前我们在/home/chen文件夹下,那么怎么获得在/tmp文件加下的grub文件的路径呢?
        这里,使用绝对路径较好,也就是使用类似“/*/*”的参数。要解决这个问题,我们的参数应该为“/*/grub”,效果如下:


总结:glob.glob的参数是一个只含有方括号、问号、正斜线的正则表达式,同时也是shell命令(就是那些我们用在cd命令后面的参数)。就像官方文档的第一句所说那样"The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell."



http://chatgpt.dhexx.cn/article/4JWHLIZT.shtml

相关文章

glob.glob() 函数

glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:””, “?”, “[]”。””匹配0个或多个字符;”?”匹配单个字符;”[]”匹配指定…

python glob.glob()

glob是python的一个标准库函数,它的作用类似于shell的find,但是只能返回一级目录的查找结果,支持通配符来查找某个目录的文件,找到的文件列表以list格式返回,如果目录不存在或者找到结果为空,则返回一个空列…

glob.glob()函数

glob.glob()函数 glob.glob(pathname, *, recursiveFalse) 功能:返回一个某一种文件夹下面的某一类型文件路径列表 pathname:文件路径 例如: 返回某一文件下面的pdf文件 import glob f glob.glob(H:\\paper_of_remote_sensing\\paper_of_lidar\\*.…

Linux杂谈之Glob文件名模式匹配

一 Glob ① 初识 glob 最早是出现在类Unix系统的命令行中,是用来匹配文件路径的1)在最新的 CentOS 7 中已经删除了 glob 的相关描述文档2)删除的原因由于 glob 已经整合到了 shell 之中,然后就有了 shell 通配符常见: 涉及glob的相关命令…

Python 中glob.glob()、glob.iglob()的使用

Python 中glob.glob()的使用 glob.glob(path)的功能: 返回符合path格式的所有文件的路径,以list存储返回。 glob.iglob(path)的功能: 返回符合path格式的一个文件的路径。 path的表示方法: 利用匹配符:"* "…

SSM项目小例子,SSM整合图文详细教程

SSM项目小例子 今天来搭建一个SSM项目的小例子简单练一练,那项目模板还是我们那个模板,就是我们在JavaWeb最后的小例子,那到SSM中我们如何实现,后面我们再看看springboot中如何实现 javaweb中项目例子:https://blog.cs…

SSM整合之登录注册

一、概述 本文以一个登录注册的小功能作为示例,对SSM框架做一个整合。 二、SSM整合 SSM框架是指Spring、SpringMVC和Mybatis,SpringMVC是包含在Spring中的,因此SSM框架整合核心是将Mybatis整合到Spring中。 2.1 DAO 1. 创建如下的数据库表格…

遇见狂神说SSM整合项目梳理详解

在跟B站的狂神学习的时候有一模块是SSM整合的一个小项目,虽然spring、springmvc、mybatis我都学过,但是整合到一起还是思路不清晰,就很懵,整合的一个小项目,让我知道了什么叫配置地狱,就是熟悉又陌生的感觉…

SSM整合Quartz

Quartz 1.整合1.1 mysql中创建quartz表1.2 添加quartz依赖1.3 添加quartz.properties与数据库关联1.4 编写quartzConfig文件1.4.1 quartz的初始化配置1.4.2 创建job 实例工厂 1.5 编写定时任务1.5.1 静态方式编写定时任务1.5.2 动态方式编写定时任务 2.quartz2.1 quartz概念2.2…

SSM 整合

目录 第六章 SSM 整合导图第一节 Spring 和 Mybatis 整合1、思路2、Mybatis-Spring技术3、总体 SSM 整合所需依赖4、配置数据源①创建 jdbc.properties②加入日志配置文件③创建 Spring 配置文件④创建 junit 测试类 5、配置 SqlSessionFactoryBean①创建 Mybatis 全局配置文件…

SSM整合Vue

昨日知识点总结 今日总结 文章目录 一.昨日知识 1.表单验证2.上传组件3.时间插件4.ElementUI简介 二.今日总结 1.页面静态化 通过html页面,制作展示所有制作添加页面 制作修改页面以及批量删除制作分页制作多条件查询 一、昨日重点复习 1.表单验证 在vue中使用rule…

SSM整合过程梳理

文章目录 前言一.SSM整合流程二.整合配置2.1添加依赖2.2创建项目包结构2.3创建SpringConfig配置类2.4创建JdbcConfig配置类2.5创建MybatisConfig配置类2.6创建jdbc.properties2.7创建SpringMVC配置类2.8创建Web项目入口配置类 三.功能模块3.1创建模型类3.2编写Dao接口3.3编写Se…

ssm整合详解

最近做项目用到了ssm,虽然以前用过ssm但这段时间发现,用过不代表就会了,即使以前用过,但现在要搭一个ssm框架不看教程还是很难,最基本的maven仓库需要哪些坐标都搞不清楚,所以今天打算写篇博客梳理一下。 一.基础梳理…

SSM整合分页插件

目录 一.环境配置 1.分页插件依赖 2.在Mybatis里面配置的内容 二.使用分页插件 1.在ServiceImpl层开启分页插件&#xff08;即查询数据库前开启&#xff09; 2.控制器方法 3.jsp页面进行整理 4.效果 5. 样式 6.常用的数据说明 一.环境配置 1.分页插件依赖 <depend…

SSM整合总结

这几天学完spring&#xff0c;springMVC&#xff0c;mybatis后&#xff0c;这两天试着去整合ssm&#xff0c;整合过程并不顺利&#xff0c;一是基础知识有的忘了&#xff0c;细节不能把握住&#xff0c;造成各种报错.看了各种视频&#xff0c;翻阅各种文章&#xff0c;多多少少…

SSM整合shiro

1.完成ssm整合shiro 企业中老项目还在使用ssm框架。 准备数据库 数据结构 张三 -user:query user:add user:update user:delete 李四 ---》user:query user:add user:update 王五-----》user:query user:export 搭建ssm的环境 &#xff08;1&#xff09;创建一个maven的web工…

SSM整合

1、ssm整合原理 SSM框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层。 使用spring MVC负责请求的转发和视图管理 spring实现业…

SSM整合,手把手教程,详解思路讲解

前言 一&#xff0c;工程创建 1.新建Maven项目&#xff0c;项目架构增加web支持 2.Maven本地仓库配置 3.集成Tomcat&#xff0c;搭建web环境 二&#xff0c;导入依赖 三&#xff0c;配置文件编写 1.web环境配置文件 2.spring整合环境配置文件 2.1 controller层(spring…

SSM整合完整流程讲解

目录 一、SSM整合说明 1、各个框架担任的角色 2、两个Ioc容器的创建顺序 1&#xff09;SpringMVC中IOC容器的创建时间 2&#xff09;Spring中IOC容器的创建时间 3&#xff09;Spring提供的监听器ContextLoaderListener 二、SSM整合步骤 1、准备工作 1&#xff09;导入…

Unresolved Dependencies

在Android Studio的开发中&#xff0c;在软件中集成了ButterKnife插件&#xff0c;另外需要集成ButterKnife的jar包。因为本地没有现成的&#xff0c;所以在module的build.gradle文件中添加了如下代码&#xff1a; compile com.jakewharton:butterknife:7.0.1 结果报了如下错误…