【发布时间】:2020-04-16 06:46:30
【问题描述】:
我在 Python 脚本中使用 subprocess.Popen() 来运行 C++ 程序的可执行文件。我需要从 C++ 程序中返回一个可以在 Python 脚本中使用的值。
我在 C++ 程序中有很多 printf 语句,所以我不能使用 PIPE 来获取输出。
我可以返回脚本接收到的单个值吗?
【问题讨论】:
标签: python c++ subprocess return-value
我在 Python 脚本中使用 subprocess.Popen() 来运行 C++ 程序的可执行文件。我需要从 C++ 程序中返回一个可以在 Python 脚本中使用的值。
我在 C++ 程序中有很多 printf 语句,所以我不能使用 PIPE 来获取输出。
我可以返回脚本接收到的单个值吗?
【问题讨论】:
标签: python c++ subprocess return-value
检查Popen返回的对象的returncode属性。
请注意,仅当您首先在 Popen 对象上调用了 poll() 或 wait() 时才会填充它。
【讨论】:
0 不同的内容?如果您不想更改退出代码,您可以使用stderr 而不是stdout。否则,您可以使用任何进程间通信方式,例如管道。
这个问题解决了。基本上python脚本子进程可以接收退出代码。 cpp 文件可以从 int main() 返回该代码,该代码可用作 python 脚本中 prog 的退出代码。
【讨论】: