python-3.x - 列出目录下所有有效/可导入的 Python 文件
问题描述
我需要获取当前模块下每个有效/可导入 Python 文件的列表,即递归地向下当前目录。
有没有一个库可以做到这一点?我没找到一个。
Airflow、mypy、black、pytest、unittest 等都使用某种递归目录遍历来发现有效的 Python 文件,但是这样做没有标准,每个 lib 都自己实现了这个功能。
如果没有一个好的库来抽象这一点,是否有任何已知的考虑投资于一种天真/简单的方法,即列出.py
包含文件的目录下的所有文件__init__.py
并根据排除列表排除一些目录(例如.*
,__pycache__
等) ?
我只对 Python 3.5+ 感兴趣。
解决方案
我没有将实现硬编码到我自己的项目中,而是为此发布了一个小型开源库。
pycollect在 MIT 下发布,其作用域是收集给定根目录的任何有效 Python 文件。它包括对行为的一些基本调整并支持排除模式。虽然仅用于收集 Python 文件,但它可以很容易地分叉成为更通用的文件/目录收集器。
截至撰写本文时,我是官方维护者。
推荐阅读
- php - 如何在电子邮件中为 api 路由和 laravel 上的 web 路由创建不同的密码重置链接
- r - 带有 invalidateLater() 的简单闪亮应用程序错误地丢弃了持久后台进程
- maven - 将 Kotlin 多平台项目发布到 mavenLocal 时如何设置 artifactId?
- python - 如何从幻灯片中提取的文本生成 xml 或 json?
- javascript - 如何使元素成为浏览器窗口的高度?
- node.js - TypeOrm创建连接方法迁移数据库建表失败
- sql - 仍然为 SQL 数据透视表中的列获取 NULL 值
- vb.net - “system.io.compression.zipfile”的类型初始化程序引发异常错误
- neo4j - Cypher:如何遍历除特定标签之外的任何关系
- html - 为什么 Firefox 不显示我的背景图片?