从Python中解析Python代码?

23

我们有一个旧的C++工具,可以自动生成一些Python代码。今天我试图翻阅C++源工具,但几乎想要开枪自杀了。我想要做的是清理工具生成的源代码,并通过添加Sphinx标签将类链接到我们的内部文档系统。

现在我想知道是否有一种在Python中解析Python代码的神奇工具?

有很多这样的东西:

foo._methods_.append()

Snip 500 lines

foo._methods_.append()

有什么建议吗?

基本上,我的代码结构功能正常,但非常混乱,我想提取某些块,将它们移动到自己的文件中,并清理所有被创建的杂项。

我快速查看了解析器和AST,但我找不到任何真正使用它的示例。

3个回答

17

这帮助我理解了Python是如何被解释的。它给了我进一步研究所需的词汇。谢谢。 - knowingpark

3
根据您的需求,您可能还想查看2to3库。它是为了自动简化将Python 2.x应用程序转换为Python 3.0而编写的,因此其主要用例是获取一个Python源文件,对其执行一些转换,然后输出结果源文件。
与ast模块相比,lib2to3具有一个优点,即ast不保留空格和注释,而lib2to3则保留它们。如果您已经在处理自动生成的代码,则这可能不是问题。

1

尝试使用Python文档生成工具,看看是否可以帮助您解决整体问题。我曾经非常成功地使用过epydoc。

或者,如果您能让老板花200美元购买SparxSystems的Enterprise Architect副本,它将反向工程您的Python代码,生成类图,并允许您单击类图并查看底层代码。适用于Python以外的许多语言,是一款优秀的设计和文档工具。(有一个99美元的版本,但这不包括代码导入功能。)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接