Python glob用法

原文:glob — Unix style pathname pattern expansion

glob — Unix样式路径名模式扩展

源代码:Lib / glob.py

尽管结果以任意顺序返回,glob模块根据Unix shell使用的规则查找与指定模式匹配的所有路径名。没有波浪线扩展,但是* 、?和用[]表示的字符范围将正确匹配,这是通过协同使用os.scandir()和fnmatch.fnmatch()函数来完成的,而不是通过实际调用子shell来完成的。请注意,与fnmatch.fnmatch()不同,glob将以点(.)开头的文件名视为特殊情况。 (对于波浪号和shell变量扩展,请使用os.path.expanduser()和os.path.expandvars()。)

对于文字匹配,请将元字符括在方括号中。例如,“ [?]”与字符“?”匹配。

也可以查看

pathlib模块提供高级路径对象。

glob.glob(路径名,*,递归= False)
返回与路径名匹配的路径名的可能为空的列表,该列表必须是包含路径说明的字符串。路径名可以是绝对路径(例如/usr/src/Python-1.5/Makefile),也可以是相对路径(例如…/…/Tools//.gif),并且可以包含shell样式的通配符。损坏的符号链接包含在结果中(如在shell程序中)。结果是否排序取决于文件系统。

如果递归为true,则模式“ **”将匹配任何文件以及零个或多个目录,子目录和目录的符号链接。如果模式后面跟随os.sep或os.altsep,则文件将不匹配。

注意

在大型目录树中使用“ **”模式可能会花费大量时间。
在版本3.5中进行了更改:支持使用“ **”的递归glob。

glob.iglob(路径名,*,递归= False)
返回一个迭代器,该迭代器产生与glob()相同的值,而实际上并没有同时存储它们。

引发带参数路径名(递归)的审核事件glob.glob。

在这里插入图片描述
glob.escape(路径名)

转义所有特殊字符(“?”,“ *”和“ [”)。如果要匹配其中可能包含特殊字符的任意文字字符串,此功能很有用。drive/ UNC共享点中的特殊字符不会转义,e.g. on Windows escape(’//?/c:/Quo vadis?.txt’) returns ‘//?/c:/Quo vadis[?].txt’.

如果目录包含以“.”开头的文件。 默认情况下不会匹配它们。 例如,考虑包含card.jpg和.card.jpg的目录:

import glob
glob.glob('C:/Users/Administrator/Desktop/code/test_code/*.jpg')
#['C:/Users/Administrator/Desktop/code/test_code\\card.jpg']
glob.glob('C:/Users/Administrator/Desktop/code/test_code/.c*')
#['C:/Users/Administrator/Desktop/code/test_code\\.card.jpg']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值