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

问题描述 投票:0回答:1

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

.exe使用printf将字符串打印到控制台。

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

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

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

另外 - 我的cpp.exe有一个永远运行的循环,并继续为控制台提供字符串。可以这样做吗?或者我是否必须打破我的cpp exe以返回一些内容而不是一直打印到屏幕上?

python c++ input printf output
1个回答
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

这个片段很容易被包装成一个函数。

© www.soinside.com 2019 - 2024. All rights reserved.