如何通过单次glob.glob()调用匹配不同目录的多后缀文件?
一次调用glob.glob()获取多路径多后缀文件列表
嘿,这个需求很好实现!你可以借助glob的大括号扩展语法,把两个不同的路径模式合并成一个统一的字符串,这样只需要一次调用就能匹配到所有符合要求的文件。
具体实现代码
import glob # 合并后的统一路径模式 target_pattern = "/ABC/{DEF/HIJ,LMN/HIJ[0-3]}/*.{data,index}" # 一次调用获取所有目标文件 file_list = glob.glob(target_pattern)
为什么这样可行?
这里的核心是glob对大括号{...}的解析规则:
{DEF/HIJ,LMN/HIJ[0-3]}会被解析为同时匹配DEF/HIJ和LMN/HIJ[0-3]这两个目录路径,相当于把两个目录分支的规则合并到了一起。- 后面的
*.{data,index}则会匹配对应目录下所有后缀为.data或.index的文件,这部分你本来就已经在用了。
小提示
如果是在Windows系统下使用,记得把路径分隔符换成\,并且建议用原始字符串避免转义问题,比如:
target_pattern = r"C:\ABC\{DEF\HIJ,LMN\HIJ[0-3]}\*.{data,index}"
内容的提问来源于stack exchange,提问作者Ethan Tan
相关产品推荐
相关产品推荐

