解析一个.py文件,读取AST,修改它,然后写回修改的源代码

问题:

我想以编程方式编辑python源代码。基本上我想读一个.py文件,生成AST,然后写回修改的python源代码(即另一个.py文件)。
有一些方法可以使用标准的python模块来解析/编译python源代码,例如astcompiler。但是,我不认为任何一种方法可以修改源代码(例如删除这个函数声明),然后写回修改python源代码。
更新:我想这样做的原因是我想为python写一个Mutation testing library,主要是通过删除语句/表达式,重新运行测试和查看中断。

回答:

 Pythoscope对于自动生成的测试用例,它与python 2.6的2to3工具一样(将python 2.x源转换为python 3.x源)。
这两个工具都使用lib2to3库,这是一个Python解析器/编译器机制的实现,它可以在源代码 – > AST – >源代码中从源代码中保留注释。
如果您想要进行更多重构(如转换),则rope project可以满足您的需求。
ast模块是您的其他选项,there’s an older example of how to “unparse” syntax trees back into code(使用解析器模块)。但是,在对代码进行AST转换后,该ast模块更有用,然后将其转换为代码对象。
redbaron项目也可能是一个很好的合适(ht Xavier Combelle)

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Parse a .py file, read the AST, modify it, then write back the modified source code

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

59 − = 53