列出目录下的所有 valid/importable Python 个文件

List all valid/importable Python files under a directory

我需要获取当前模块下每个 valid/importable Python 文件的列表,即递归地向下移动当前目录。

有库可以做到吗?我没找到。

Airflow、mypy、black、pytest、unittest 等都使用某种递归目录遍历来发现有效的 Python 文件,但是没有这样做的标准,每个库都自己实现了这个特性.

如果没有一个很好的库来对此进行抽象,是否有任何已知的考虑因素来投资一种 naive/simplistic 方法,即在包含 [=13= 的目录下列出所有 .py 文件] 文件并根据排除列表排除某些目录(例如 .*__pycache__ 等)?

我只对 Python 3.5+ 感兴趣。

我没有将实现硬编码到我自己的项目中,而是为此发布了一个小型开源库。

pycollect 在麻省理工学院下发布,范围是收集给定根目录的任何有效 Python 文件。它包括一些基本的行为调整并支持排除模式。虽然旨在仅收集 Python 文件,但它可以很容易地分叉成为更通用的 files/directories 收集器。

截至撰写本文时,我是官方维护者。