我希望能够将python代码(字符串)转换为解析树,在树级别修改它,然后将树转换为代码(字符串)。当转换为解析树并在没有任何树级修改的情况下返回代码时,生成的代码应该与原始输入代码完全匹配。
我想为此使用python。我找到了ast和parserpython 模块,但是 ast 树丢失了有关原始代码的信息。至于parser模块,我似乎无法弄清楚如何操作解析树或将其转换为代码。
这是我到目前为止所拥有的。
import ast
import astor # pip install astor
import parser
code = 'hi = 0'
ast_tree = ast.parse(code)
code_from_ast = astor.to_source(tree) # 'hi = 0\n'
parser_tree = parser.suite(code)
code_from_parser = ???
Run Code Online (Sandbox Code Playgroud)