首页 > 编程语言 >python-glob查找特定文件

python-glob查找特定文件

时间:2023-08-02 20:24:00浏览次数:38  
标签:文件 匹配 字符 python glob py 查找 print

python-glob查找特定文件

目录

glob模块可以查找当前脚本目录(相对路径)下或者某一指定目录(绝对路径)符合特定规则的文件路径名

glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。

只用到三个匹配符

*  通配符:匹配0个或多个字符;

?  单个字符通配符:匹配单个字符;

[]  字符范围:匹配指定范围内的字符,如:[0-9]匹配数字。
通配符 功能
* 匹配0或多个字符
** 匹配所有文件,目录,子目录和子目录里面的文件
匹配一个字符,这里与正则表达式? (正则?匹配前面表达式0次或者1次)
[] 匹配指定范围内的字符,如: [1-9]匹配1至9内的字符
[!] 匹配不在指定范围内的字符

glob.glob

返回所有匹配的文件路径列表

只有一个参数 pathname :定义了文件路径匹配规则;可以是绝对路径,可以是相对路径

import glob

#获取指定目录下的所有图片
print (glob.glob(r"/home/qiaoyunhao/*/*.jpg"))#加上r让字符串'/'不产生转义

#获取上级目录的所有.py文件
print (glob.glob(r'../*.py')) #相对路径

glob.iglob

获取一个生成器对象,使用它可以逐个获取匹配的文件路径名。

与 glob.glob()的区别: glob.glob()同时获取所有的匹配路径;而 glob.iglob()一次只获取一个匹配路径
import glob
#父目录中的.py文件
f = glob.iglob(r'../*.py')

print(type(f))   # <class 'generator'>
print (f) #<generator object iglob at 0x00B9FF80>
for py in f:
    print (py)

案例

当前路径下所有py文件

for fname in glob.glob("**/*.py",recursive=True):
    print(fname)

当前路径文件tmp下py文件

for fname in glob.glob("./tmp/*.py"):
    print(fname)

标签:文件,匹配,字符,python,glob,py,查找,print
From: https://www.cnblogs.com/tian777/p/17601648.html

相关文章

  • python-sys模块
    python-sys模块目录python-sys模块sys.versionsys.argvsys.platformsys.modulessys.path参考资料"sys"即"system","系统"。该模块提供了一些接口,用于访问Python解释器自身使用和维护的变量,不是主机操作系统。sys.argv #获取命令行参数列表,第一个元素是程序本身sys.ex......
  • Python基础day57 Django模板继承和模型层
    模板之标签就是在模板里面使用流程控制:if、else、elseif、for标签看起来是这样的:{%tag%}for标签{%forpersoninperson_list%}{{forloop}}<p>{{person.name}}</p>{%endfor%}{%forpersoninperson_list%}{#判断list是否有值,没有就走empty#}......
  • 剑指 Offer 53 - I. 在排序数组中查找数字 I(简单)
    题目:classSolution{public:intsearch(vector<int>&nums,inttarget){intcount=0;for(auton:nums){if(n==target){count++;}}returncount;}};......
  • 【python_3】PyCharm开发工具的安装和基础使用!
    前言Python程序的开发有许多种方式,一般常见的:python解释器环境内,执行单行代码;使用python解释器程序,执行python代码文件;使用第三方IDE(集成开发工具),如PyCharm软件,开发python程序;1.下载pycharm官网:https://www.jetbrains.com/2.安装点击next:点击next:点击next:点击next:点击Install......
  • 基础阶段python小总结暨下个阶段预习
    基础阶段基本与函数基本已经截至了,这些很简单,资料很多,当然我个人的更新的不是很全,只能做一个参考。下个阶段class预习简单做一个学生通信管理系统。任务说明:"学生信息管理系统v1.0""【1】、添加学生信息""【2】、删除学生信息""【3】、修改学生信息""【4......
  • C语言逆向分析——Switch语句,为何大多数情况较if语句更高效?就是因为查找表
    Switch语句Switch语句也是分支语句的一种,其语法如下:switch(表达式){case常量表达式1:语句;break;case常量表达式:语句;break;case常量表达式:语句;break;......default:语句;break;}需要注意如下几点:表达式结束不能是浮点数case后的常量......
  • python中发送测试报告邮件
    要在Python中发送测试报告邮件,可以使用smtplib和email库来实现。以下是简单的代码,以qq邮箱为例,注:邮箱密码得事先申请,如下:先开启服务,之后再申请(需绑定一手机号)代码如下:importsmtplibfromemail.mime.textimportMIMETextfromemail.mime.multipartimportMIMEMultipartfromem......
  • python3 番外篇之Linux环境安装问题
    问题一、Linux主机openSSL版本较老[root@zabbix-serveralertscripts]#python3feishu.pyTraceback(mostrecentcalllast):File"feishu.py",line3,in<module>importrequestsFile"/usr/local/python3.8/lib/python3.8/site-packages/reque......
  • Python-入门
    介绍Python (python.org)LearnXinYminutes (learnxinyminutes.com)Regexinpython (jaywcjlove.github.io)helloword>>>print("Hello,World!")Hello,World!Python中著名的“HelloWorld”程序变量age=18#年龄是int类型name="John"#nam......
  • Python 字符串
    类数组>>>hello="Hello,World">>>print(hello[1])e>>>print(hello[-1])d获取位置 1 或最后的字符循环>>>forcharin"foo":...print(char)foo遍历单词 foo 中的字母切片字符串┌───┬───┬───┬───┬───┬───┬───┐|m|y|b|......