我需要获取生活在当前模块下的每个有效/可导入的Python文件的列表,即递归地记录在当前目录下。
是否有库可以做到这一点?我找不到一个。
Airflow,mypy,black,pytest,unittest等都使用某种递归目录遍历来发现有效的Python文件,但是这样做没有标准,每个lib都自行实现此功能。
[如果没有一个好的库可以对此进行抽象,是否有任何已知的考虑因素考虑投资于一种幼稚/简单的方法,即在包含.py
文件的目录下列出所有__init__.py
文件并排除某些目录(例如[ C0],.*
等)基于排除列表?
我仅对Python 3.5+感兴趣。
不是将实现硬编码到我自己的项目中,我为此发布了一个小的开源库。
__pycache__
在MIT下发布,其作用是收集给定根目录的所有有效Python文件。它包括对行为的一些基本调整,并支持排除模式。尽管它仅用于收集Python文件,但它可以很容易地分支成为更通用的文件/目录收集器。
截至撰写本文时,我是官方维护者。