将值从c ++发送回python

时间:2015-05-28 13:46:10

标签: python c++

我想我的问题相当简单,但我无法找到解决问题的方法。我的流程如下:

  1. 我运行一个Python脚本:Test.py。
  2. 在该脚本中,我正在调用一个c ++程序。
  3. Test.py:

    RunCprogram = "./Example"
    os.system(RunCprogram)
    

    我希望./Example可执行文件返回一个double,以后可以在我的Python脚本中使用。最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

首先,确保Example将所需数据输出到stdout 。如果不是,你就无能为力了。

然后使用Python的subprocess模块。

import subprocess

res=subprocess.check_output(["./Example"], universal_newlines=True)

如果res最后包含换行符,请使用res.strip()将其删除。最后,使用res投放floatfloat(res)

答案 1 :(得分:2)

这是一个基于@ForceBru答案的小例子:

example.cpp,使用g++ example.cpp -o example

进行编译
#include <iostream>

int main() {
    std::cout << 3.14159 ;
    return 0;
}

example.py

#!/usr/local/bin/python

import subprocess

res = subprocess.check_output(["./example"], universal_newlines=True)

print "The value of 2*" + u"\u03C0" + " is approximately " + str(2*float(res))