我想解析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'
通过Google搜索,我找到了inspect
模块,它可以通过getsourcelines
将对象转换为源,但它与python语法完全无关。我正在寻找可以解析表达式的东西。
答案 0 :(得分:2)
Python在ast模块中内置了一个解析器。它不会以您想要的形式准确地返回您想要的内容,但ast.parse()方法会为您提供一个抽象语法树,您可以通过一点点努力来构建您正在寻找的内容。