Python: glob匹配文件的操作
作者:米乐乐果- 发布时间:2023-05-30 00:36:24
glob模块实例详解
glob的应用场景是要寻找一系列(符合特定规则)文件名。
glob模块是最简单的模块之一,内容非常少。用它可以查找符合特定规则的文件路径名。查找文件只用到三个匹配符:”*”, “?”, “[]”。
”*”匹配0个或多个字符;
”?”匹配单个字符;
”[ ]”匹配指定范围内的字符,如:[0-9]匹配数字。
假设以下例子目录是这样的。
dir
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir
dir/subdir/subfile.txt
匹配所有文件
可以用*匹配任意长度字节。glob.glob比较常用,返回一个list,也可用glob.iglob返回生成器。
import glob
for name in glob.glob('dir/*'):
print name
dir/file.txt
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
dir/subdir
匹配子目录文件
可以指定子目录名称,也可以用通配符代替,不显示指定。
print 'Named explicitly:'
for name in glob.glob('dir/subdir/*'):
print '\t', name
print 'Named with wildcard:'
for name in glob.glob('dir/*/*'):
print '\t', name
Named explicitly:
dir/subdir/subfile.txt
Named with wildcard:
dir/subdir/subfile.txt
单字节通配符匹配
除了*以外,还有?匹配单个字符。比如下面这个例子,匹配以file开头,以.txt结尾,中间是任一字符的文件。
for name in glob.glob('dir/file?.txt'):
print name
dir/file1.txt
dir/file2.txt
dir/filea.txt
dir/fileb.txt
字符区间匹配[0-9]
比如匹配后缀前是数字的文件。
for name in glob.glob('dir/*[0-9].*'):
print name
dir/file1.txt
dir/file2.txt
Ref:
官方文档
Python Module of the Week
补充知识:Python glob 递归遍历匹配文件;os.makedirs()递归创建目录
Glob递归遍历匹配文件
简约版
在python中,glob模块用来查找匹配文件
常用的匹配规则:
: 匹配所所有
? : 匹配一个字符
如果没有匹配的,glob.glob(path)将返回一个空的list:[]
from glob import glob
file_path = "/home/lihuiyu/Code/results_S2_W20040/*/*.pth"
print(glob(file_path))
排序版
我喜欢偷懒,所以,Coding能解决的问题一般不会人工解决;
我喜欢整洁,所以,Coding苛求完美,结果奢求整齐划一。
import re
from glob import glob
def atoi(s):
return int(s) if s.isdigit() else s
def natural_keys(text):
return [atoi(c) for c in re.split('(\d+)', text)]
file_path = "/home/lihuiyu/Code/results_S2_W20040/*/*.pth"
file_list = glob(file_path)
file_list.sort(key=natural_keys)
for name in file_list:
print(name)
os.makedirs()递归创建目录
os.mkdir()创建指定的目录,但如果其上一级目录不存在,则无法创建成功。
os.makedirs()实现递归创建目录的功能。
来源:https://blog.csdn.net/u010967162/article/details/52298188


猜你喜欢
- python共有两种浅拷贝的方法,一个是python的内置函数copy(),另一个是copy模块中的copy.copy()。python的六
- 最近公司项目加了个页面,其中要求是这样的,点击对应列表,展开和收起,其实就是显示和隐藏内容部分;说来惭愧,我花了半天时间才搞出来(自黑一下~
- 0、问题在用Tkinter进行编程时,需要在一个Frame下显示多个图片,但是不管怎么设置都是只显示最后一张,就像这样:代码for i in
- 写程序必然需要版本控制,哪怕是个人项目也是必须的,VS2015开始默认提供了对Git的支持。考虑到现在Git很火,作为微软系的程序员也不得不
- 本文实例讲述了Python实现批量将word转html并将html内容发布至网站的方法。分享给大家供大家参考。具体实现方法如下:#codin
- torch.argmax()函数解析1. 官网链接torch.argmax(),如下图所示:2. torch.argmax(input)函数
- 在plugin/tagbar.vim里面的键映射改成: \ ['nexttag', '<
- 简单邮件传输协议(SMTP)是一种协议,用于处理在电子邮件服务器之间发送电子邮件和路由电子邮件。Python提供了smtplib模块,该模块
- 前言在vue项目中我们经常使用到 v-show ,v-if,v-for等内置的指令,除此之外vue还提供了非常方便的自定义指令,供我们对普通
- 代码如下所示:import osimport requestsimport datetimefrom Crypto.Cipher impor
- 标准的SQL模式匹配SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模
- 引言现在本地创建一个excel表,以及两个sheet,具体数据如下:sheet1: sheet2:读取excel文件pandas.
- 【导读】亚马逊的 Alexa 的巨大成功已经证明:在不远的将来,实现一定程度上的语音支持将成为日常科技的基本要求。整合了语音识别的 Pyth
- 在《数据库原理》里面,对聚簇索引的解释是:聚簇索引的顺序就是数据的物理存储顺序,而对非聚簇索引的解释是:索引顺序与数据物理排列顺序无关。正式
- 前言本文分析了 mysqld 进程关闭的过程,以及如何安全、缓和地关闭 MySQL 实例,对这个过程不甚清楚的同学可以参考下。关闭过程1、发
- 新版的path 虽然 取代了 之前的url,但是在写路由的时候不能在路由中直接写正则表达式,不然会找不到页面。解决方法使用re_pathfr
- 最近写一个小爬虫,需要拿到邮箱信息,发现拿不到,也不是ajax接口。最后查资料发现是被Cloudflare加密起来了,有加密肯定有解密。通过
- 今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件。知道是用pydoc进行模块的读取,但是在windo
- 在win10环境下搭建python3.5.2和tensorflow平台,供大家参考,具体内容如下操作步骤如下:1、官网(https://ww
- 本文实例讲述了Zend Framework动作助手Redirector用法。分享给大家供大家参考,具体如下:Redirector 提供另一种