使CPP exe打印到Python脚本输入中

时间:2019-02-20 15:39:56

标签: python c++ input printf output

我有一个Python脚本,我想从我拥有的CPP .exe中获取信息。

.exe使用printf打印一个字符串以控制台。

我希望能够将此字符串放入我的Python代码中。

我希望能够在我的Python代码中执行以下操作:

gyro_data = GetFromCommandLine(cpp.exe.run())

也-我的cpp.exe有一个循环,该循环可以永久运行,并用字符串保持供稿控制台。能做到吗?还是我必须中断cpp exe才能返回某些内容,而不是一直打印到屏幕上?

1 个答案:

答案 0 :(得分:2)

我建议使用subprocess module

然后您将能够执行类似的操作(此代码来自其文档,需要Python 3.7)

subprocess.run(["ls", "-l", "/dev/null"], capture_output=True)

返回

CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0,
stdout=b'crw-rw-rw- 1 root root 1, 3 Jan 23 16:23 /dev/null\n', stderr=b'')

对于早期版本,您将像这样使用subprocess.Popen

your_process = Popen(['ls', '-l', '/dev/null'], stdout=subprocess.PIPE)
your_process.wait()

your_process_output = your_process.stdout().decode() # Here you will have a string

此代码段可以很容易地包装为一个函数。