我想我的问题相当简单,但我无法找到解决问题的方法。我的流程如下:
Test.py:
RunCprogram = "./Example"
os.system(RunCprogram)
我希望./Example
可执行文件返回一个double,以后可以在我的Python脚本中使用。最好的方法是什么?
答案 0 :(得分:3)
首先,确保Example
将所需数据输出到stdout
。如果不是,你就无能为力了。
然后使用Python的subprocess
模块。
import subprocess
res=subprocess.check_output(["./Example"], universal_newlines=True)
如果res
最后包含换行符,请使用res.strip()
将其删除。最后,使用res
投放float
到float(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))