我将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语法规格:

  • http://docs.python.org/reference/grammar.html
  • http://inst.eecs.berkeley.edu/~cs164/sp10/python-grammar.html
  • 08-18 15:19
    查看更多