python中的glob.glob()(包含详细实例)

本文详细介绍了 Python 中 glob.glob 函数的功能与使用方法,并通过多个示例演示如何利用该函数来搜索符合特定模式的文件路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在网上搜了半天没搜到满意的解释,最终选择去原英文文档里寻找其释义,具体如下:

glob.glob(pathname, *, root_dir=None, dir_fd=None, recursive=False)

其功能是返回一个与pathname匹配的路径名列表(该列表可以为空,必须是符合路径规范的字符串)
pathname: 既可以是绝对路径( /usr/src/Python-1.5/Makefile),也可以是相对路径(…/…/Tools//.gif),并且可以包含shell样式的通配符。
root_dir:如果root_dir不是None,则它应该是一个类似路径的对象,指定要搜索的根目录。它对glob()的作用与在调用当前目录之前更改它的作用相同。如果路径名是相对的,则结果将包含相对于根目录的路径。
recursive:如果recursive为true,则模式“**”将匹配任何文件以及零个或多个目录、子目录和指向目录的符号链接。如果模式后跟(os.sep)或(os.altsep),则文件将不匹配。

以上是官方文档里的内容,很抽象,不过接下来上一个实例就简介明了了:

例子中的文件夹结构如图
在这里插入图片描述

>>> 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/']

倒数两个例子中可以看出,当 recursive=True时 模式“**”也会对子文件夹sub里的内容进行遍历。

如果目录包含以(.)开头的文件,默认情况下,它们不会匹配。(card.gif 和 .card.gif,可自行在文件加里加入.card.gif 尝试)

>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值