You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的递归glob操作中排除基础目录?

Python glob递归模式排除基础目录的方案

Python标准库的glob模块没有专门的内置选项能直接在recursive=True模式下排除基础目录(即你例子中的D:/TEST/)。

原因说明

当使用glob.glob("D:/TEST/**", recursive=True)时,**在递归模式下会匹配空路径(也就是基础目录本身),这是模块的设计逻辑——**的作用是匹配当前目录及其所有子目录层级,因此自然会包含基础目录。而非递归模式下的*或**不会匹配目录本身,所以不会出现这个差异。

无需手动移除的替代写法

如果不想手动过滤结果,可以调整glob匹配路径为:

glob.glob("D:/TEST/**/*", recursive=True)

这个写法中,**匹配D:/TEST/下的所有子目录层级,后面的*匹配每个层级里的文件和子目录,最终返回的结果只会包含基础目录下的所有子项,不会包含D:/TEST/本身,和非递归模式的表现保持一致。

内容的提问来源于stack exchange,提问作者Basj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:12:06