我将python嵌入C / C++程序中。
我想要做的是从C / C++程序解析python脚本文件,将文件拆分为“块”,以便每个“块”都是python代码中的有效命令。我需要将每个块放入std::string
中。例如:
#PythonScript.py
import math
print "Hello Python"
i = 0;
while (i < 10):
print "i = " , i;
i = i + 1;
print "GoodBye Python"
此脚本中有5个不同的“块”:
"import math;"
"print "Hello Python;"
"i = 0;"
while (i < 10):\n\tprint "i = " , i;\n\ti = i + 1;
我对python的了解非常基础,并且我对python代码语法不熟悉。最好的方法是什么,是否有任何支持此功能的Python C / C++ API函数?
为什么我需要它->用于GUI。我的程序是用C语言编写的,它使用python进行一些计算。我从C代码运行,使用python C API,python脚本,而我需要的是一种在程序中捕获python输出的方法。我捕获了它,并且一切正常,问题是当脚本涉及用户输入时。发生的事情是我在脚本完成后捕获了python的输出,因此,当脚本中有输入命令时,我会黑屏....我需要在输入命令前获取所有打印内容。
我尝试的第一个解决方案是将脚本解析为有效命令,然后依次运行每个命令,..为此,我需要解析脚本并忽略什么是命令,什么不是...
问题是:做到这一点的最佳方法是什么?是否有万事俱备的东西?
最佳答案
如果要进行语法分析,则应研究Python语法(并可以使用Bison作为解析器生成器)
Python语法规格: