如何用Python表示所有导入的模块

如何用Python表示所有导入的模块,python,Python,我有一个python文件,其导入如下: from a import z from b import y from c import x # .... 我对每个模块都有一个字符串表示,但是我想从所有导入的模块中获取字符串表示,而不必列出所有模块。简言之,我想对所有导入的模块中的名称做一些类似于的操作…到目前为止,所有导入的模块都有一个映射。。。不确定这是否是您想要的…一种非常粗糙的方法是: >>> import sys >>> [x for x in lo

我有一个python文件,其导入如下:

from a import z
from b import y
from c import x
# ....  
我对每个模块都有一个字符串表示,但是我想从所有导入的模块中获取字符串表示,而不必列出所有模块。简言之,我想对所有导入的模块中的名称做一些类似于
的操作…

到目前为止,所有导入的模块都有一个映射。。。不确定这是否是您想要的…

一种非常粗糙的方法是:

>>> import sys
>>> [x for x in locals().keys() if isinstance(locals()[x], type(sys)) and not x.startswith('__')]
您必须将sys从结果中排除,但您可以了解情况


我不确定这是否是实现您想要的目标的最佳方式,但我非常确定它至少能起作用。

可能有一个更干净的解决方案,包括
inspect.getmembers
inspect.ismodule
。当然,然后您又回到使用
sys.modules
来获取对当前模块对象的引用……可能有一个更干净的解决方案,是的,我的解决方案相当麻烦,但我承认我没有那么多操作导入之类的经验。