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,glob,匹配
0
投稿

猜你喜欢

  • pytorch教程网络和损失函数的可视化代码示例

    2023-11-26 16:13:51
  • 修复 jQuery 中 isFunction 方法的 BUG

    2010-01-25 12:05:00
  • OpenCV清除小面积连通域的实现方法

    2023-11-16 03:58:25
  • Python自动化之批量处理工作簿和工作表

    2023-02-16 08:07:30
  • windows下使用GoLand生成proto文件的方法步骤

    2023-08-25 16:04:21
  • 使用python+pygame开发消消乐游戏附完整源码

    2021-06-26 03:42:52
  • Python深度学习之Unet 语义分割模型(Keras)

    2022-10-18 13:30:15
  • 详解Python中的正斜杠与反斜杠

    2021-06-28 08:38:10
  • HTML的基本元素

    2010-03-16 12:39:00
  • 利用Python将list列表写入文件并读取的方法汇总

    2023-12-07 13:40:07
  • js 获取后台的字段 改变 checkbox的被选中的状态 代码

    2024-04-22 22:33:40
  • flask中使用SQLAlchemy进行辅助开发的代码

    2021-09-10 07:46:43
  • ASP:Cookie使用指南

    2007-09-28 12:48:00
  • Python实现的随机森林算法与简单总结

    2021-07-10 20:59:54
  • pyecharts调整图例与各板块的位置间距实例

    2023-05-15 20:05:40
  • Windows下Python2与Python3两个版本共存的方法详解

    2022-01-16 12:27:29
  • python实现播放音频和录音功能示例代码

    2023-08-20 23:23:15
  • ASP程序直接连接MYSQL数据库

    2008-10-03 12:13:00
  • 总结归纳python os库常用方法

    2023-05-23 19:34:05
  • axios 拦截器管理类链式调用手写实现及原理剖析

    2023-07-02 16:38:23
  • asp之家 网络编程 m.aspxhome.com