【问题标题】:List all valid/importable Python files under a directory列出目录下所有有效/可导入的 Python 文件
【发布时间】:2019-07-27 19:03:09
【问题描述】:

我需要获取当前模块下每个有效/可导入 Python 文件的列表,即递归地向下当前目录。

有没有一个库可以做到这一点?我没找到。

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

如果没有一个好的库来抽象这个,是否有任何已知的考虑投资于一种天真的/简单的方法,即在包含__init__.py 文件的目录下列出所有.py 文件并排除一些目录(例如.*__pycache__ 等)是否基于排除列表?

我只对 Python 3.5+ 感兴趣。

【问题讨论】:

    标签: python-3.x recursion traversal os.walk scandir


    【解决方案1】:

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

    pycollect 在 MIT 下发布,其作用域是收集给定根目录的任何有效 Python 文件。它包括对行为的一些基本调整并支持排除模式。虽然仅用于收集 Python 文件,但它可以轻松分叉成为更通用的文件/目录收集器。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-26
      • 2020-05-13
      • 1970-01-01
      • 2011-11-09
      • 2018-05-02
      • 1970-01-01
      • 2017-02-16
      • 2011-06-13
      相关资源
      最近更新 更多