这就是我所拥有的:
glob(os.path.join('src','*.c'))
但我想搜索 src 的子文件夹。这样的事情会起作用:
glob(os.path.join('src','*.c'))
glob(os.path.join('src','*','*.c'))
glob(os.path.join('src','*','*','*.c'))
glob(os.path.join('src','*','*','*','*.c'))
但这显然是有限且笨重的。
原文由 Ben Gartner 发布,翻译遵循 CC BY-SA 4.0 许可协议
路径库.路径.rglob
使用 Python 3.5 中引入的
pathlib.Path.rglob
pathlib
模块中的 --- 。如果你不想使用 pathlib,可以使用
glob.glob('**/*.c')
,但不要忘记传递recursive
关键字参数,它会在大目录上使用过多的时间.对于以点 (
.
) 开头的匹配文件的情况;例如当前目录中的文件或基于 Unix 的系统上的隐藏文件,请使用下面的os.walk
解决方案。os.walk
对于较旧的 Python 版本,使用
os.walk
递归遍历目录并使用fnmatch.filter
匹配简单表达式: