使用 Main() 返回值作为 python 脚本的参数
Using Main() return value as an argument for a python script
我希望我的C++进程传递其返回值以打开python脚本。
CPP 示例文件
int main()
{
//do something
//process is going to finish and is gonna return, for simplicity, 0
//retval = 0, or whatever the return value is going to be
popen("mypython_script.py retval")
return 0;
}
mypython_script.py
if __name__ == "__main__":
cpp_retval = sys.argv[1]
print(cpp_retval)
我不知道C++文件是否可以按照描述发送它们的返回值,但这只是我想要实现的一般行为。
我还可以控制每个C++进程的父进程:它是另一个 python 脚本,负责打开C++文件并在需要时杀死它们的进程,所以如果你有一个解决方案涉及使用父进程从"cpp 示例文件"获取返回值,那非常受欢迎
编辑:我忘了补充一点,我不能要求父python进程等待C++程序返回一些东西。我绝不能在我的程序中进行任何形式的"等待"。
如果使用cpp_retval = subprocess.call(...)
或cpp_retval = subprocesss.run(...).returncode
(https://docs.python.org/3/library/subprocess.html(运行C++程序,则可以从父python脚本捕获C++程序的返回值。
然后你可以把它传递给另一个python脚本。所以,像这样:
cpp_retval = subprocess.call(["my_cpp_program.exe"])
subprocess.call(["my_python_script.py", str(cpp_retval)])
如果你想直接将值从C++程序传递给python脚本,你可以这样做:
#include <cstdlib> // std::system
#include <string>
int main()
{
const int retval = do_stuff();
std::system((std::string("my_python_script.py") + ' ' + std::to_string(retval)).c_str());
return retval;
}
相关文章:
- 如何在c++中使用system()来运行包含空格的python脚本
- 如何将真正的字符串从python c-api转换为python脚本
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 使用 Main() 返回值作为 python 脚本的参数
- 如何制作启动 Python 脚本的 linux 后台进程(在 c 中)
- 从Raspberry Pi / Linux上的Python脚本运行和停止C++程序
- C++ Python 并不总是执行 Python 脚本
- 从C++调用 Python 脚本以持续流式传输数据
- 将数据从 c++ 文件连续发送到 Python 脚本以进行进一步处理
- 错误,在嵌入在C++程序中的 python 脚本中使用 matplotlib 时
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- Python 脚本到 c .obj 文件
- 从 c++ 运行 python 脚本时出现问题
- C++ :从C++脚本内部触发存储在我机器上的 python 脚本
- 从 c++ 中运行 python 脚本,找不到模块
- 参数从 Python 脚本传递到 C++ 使用 boost-python
- 无法从Linux,C ++执行"my_script" python脚本"main(filename)"功能;pModule = PyImport_Import(pName);返回空值
- 如何在C ++(qt)代码中使用python脚本?(网页抓取方面)
- 将对象从 python 脚本传递给 c++