首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法从树的转储文件中恢复AST树?

有没有办法从树的转储文件中恢复AST树?
EN

Stack Overflow用户
提问于 2018-07-16 16:34:07
回答 1查看 364关注 0票数 2

C是被解析的python代码树:

c=ast.parse(''' for x in y: print(x) ''')

D是树-c的转储文件。

代码语言:javascript
复制
d=ast.dump(c)

D的内容是以下字符串:

代码语言:javascript
复制
Module(
    body=[For(target=Name(id='x', ctx=Store()), iter=Name(id='y', ctx=Load()),
    body=[Expr(value=Call(func=Name(id='print', ctx=Load()), 
    args=[Name(id='x', ctx=Load())], keywords=[]))], orelse=[])])

我环顾了一下网络,看看是否可以找到一种方法来使用d的内容,然后返回到树c。

有什么建议吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-16 17:52:59

可以使用eval从字符串中获取ast对象:

代码语言:javascript
复制
ast_obj = eval(d)

然后,有各种各样的第三方库可以转换回源(Given an AST, is there a working library for getting the source?Python ast (Abstract Syntax Trees): get back source string of subnode)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51366393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档