有没有一种简单的方法列出包中所有模块的名称,而不使用__all__
?
例如,给定此包:
/testpkg
/testpkg/__init__.py
/testpkg/modulea.py
/testpkg/moduleb.py
我想知道是否有一种标准或内置的方法来做这样的事情:
>>> package_contents("testpkg")
['modulea', 'moduleb']
手动方法是遍历模块搜索路径以找到包的目录。然后可以列出该目录中的所有文件,筛选出唯一命名的py/pyc/pyo文件,去掉扩展名,并返回该列表。但对于模块导入机制已经在内部做的事情来说,这似乎是相当多的工作。这项功能在任何地方都公开了吗?
也许这能满足你的要求?
使用python2.3 and above,还可以使用
pkgutil
模块:编辑:请注意,参数不是模块列表,而是路径列表,因此您可能需要执行以下操作:
相关问题 更多 >
编程相关推荐