python - 是否可以用python解析python并提取可执行表达式?

标签 python

我想解析一个Python字符串(或对象),并从中提取它的“部分”。

例如,给出以下内容:

  def foo():
     xs = [x ** x
           for x in range(100)
           if x % 2 
     ]

     for x in xs: 
        print x 
        print 'cool'

我希望能够将其解析为如下表达式:

1.   xs = [x ** x
               for x in range(100)
               if x % 2 
           ]


2.     for x in xs: 

3.        print x 

4.        print 'cool' 

通过谷歌搜索,我发现了 inspect 模块,它可以通过 getsourcelines 将对象转换为其源代码,但它与 python 语法完全无关。我正在寻找可以解析表达式的东西。

  1. 这可能吗?
  2. 有图书馆可以做到这一点吗?

最佳答案

Python 在 ast 中内置了一个解析器模块。它不会以您想要的形式准确返回您想要的内容,但是ast.parse()方法为您返回一个抽象语法树,您可以通过它构建您正在寻找的内容,只需付出一点努力。

关于python - 是否可以用python解析python并提取可执行表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29482922/

相关文章:

python 模块来解码 OSX plist 整数日期?

Python:将 3D 椭球体(扁圆形/长圆形)拟合到 3D 点

python - 删除具有只读权限的文件,但对父文件夹具有写入权限

python - 使用鼠标移动 QtWidgets.QtWidget

python - 如何分组然后将结果写入 csv(以及更多)

python - 简单的单层神经网络

python - 检查 python 日期列表中的任何日期是否在两个日期列之间

Python将列表的元素附加到字符串

python - BASH 和 Python

python - 在Python 3中将元素传递给多个函数