从Python中解析Python代码?

2024-04-27 02:19:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个老的C++工具,它自动生成一些Python代码。我试图通过C++源工具,今天,几乎想拍摄我自己。我想做的是清理工具创建的源代码,并通过添加sphinx标记将类链接到我们的内部文档系统。

现在我想知道的是,在python中是否有一种非常好的工具来解析python代码?

有很多这样的事情:

foo._methods_.append()

Snip 500 lines

foo._methods_.append()

有什么建议吗?

基本上,我有一个功能性的但非常混乱的代码结构,我基本上想提取某些块,将它们移动到自己的文件中。清理所有被创造出来的杂七杂八的东西。

我快速查看了parser和AST,但找不到任何实际使用的示例。


Tags: 工具代码文档标记源代码foo链接系统
3条回答

尝试使用Python文档生成实用程序之一,看看这是否有助于解决总体问题。我用epydoc很成功。

或者如果你能让你的老板拿出200美元,从SparxSystems购买一份企业架构师。它将反向工程您的Python代码,生成类图,并允许您单击类图并查看底层代码。适用于除Python之外的多种语言,以及优秀的设计和文档实用程序。(有一个99美元的版本,但不包括代码导入功能。)

根据您的需要,您可能还想查看2to3库。它的编写是为了自动促进Python 2.x应用程序到Python 3.0的转换,因此它的主要用例是获取一个Python源文件,对其执行一些转换,然后输出结果源文件。

lib2to3相对于ast模块的一个优点是ast不保留空白和注释,而lib2to3则保留空白和注释。如果您已经在处理自动生成的代码,这对您来说可能不是问题。

您可以使用tokenize模块将python代码标记化以解析单个标记。e、 克Script to remove Python comments/docstrings

或者可以使用parser模块

或者使用ast模块

相关问题 更多 >