我想以编程方式编辑python源代码.基本上我想读取一个.py文件,生成AST,然后写回修改过的python源代码(即另一个.py文件).
有一些方法可以使用标准的python模块解析/编译python源代码,例如ast或compiler.但是,我不认为它们中的任何一个都支持修改源代码的方法(例如删除此函数声明),然后回写修改python源代码.
更新:我想这样做的原因是我想为python 编写一个Mutation测试库,主要是通过删除语句/表达式,重新运行测试和查看什么中断.
我已经做了很多关于如何捕获保留了注释的python AST的搜索.建议的方法包括使用ast和tokenize库来完成工作.
根据我的要求,我在使用这些库方面取得了相当大的成功,但我觉得必须有更好的方法.
这个想法源于这样一个事实:lib2to3将python2代码转换为保留了注释的python3代码.此过程也被称为源代码在Python2中 - > AST - > Source-Code-in-Python3(将以简化的方式提出).
我的问题是如何捕获中间 AST?我查看了python-docs,但是没有命令行标志来获取AST.
只是为您提供上下文:我正在尝试将python源代码转换为XML文件(保留注释)以进行进一步处理