繁体   English   中英

如何在 Python 和 C++ 之间交换数据

[英]How to exchange data between Python and C++

我想用 Python 编写一个程序,它读取 2 个数字(来自文本文件或用户输入)调用一个 C++ 函数,该函数接受 2 个参数(2 个数字)将它们相加并将结果返回给 Python 程序。 我已经设法使用文本文件(从 python 保存数字,然后在 C++ 程序中调用该文件)来做到这一点。 但我想直接做,而不必使用文本文件作为媒介。 我希望能够调用该函数并将参数直接发送给它,而不是让它从文本文件中读取它们,并且我希望将输出返回到原始 python 代码。

关于如何进行的任何想法,因为我在这方面还很陌生?

如果您有两个不同的程序,则需要使用进程间通信技术(管道、套接字、信号等)。

如果你想将 C++ 代码集成到一个 python 程序中,你可以使用Boost.Python这个文档

一个非常强大的用于集成 Python 和 C++ 的工具称为sip ,它是 Qt 绑定 PyQt 所基于的工具。

您可以调用函数,甚至可以将 C++ 类直接映射到 Python(包括支持在 Python 中派生 C++ 类)。

Cython从 0.13 版开始支持 C++。

一些阅读材料:

将参数从C ++发送到python的代码

#include <windows.h>
 {
   system("start abc.py hi"); //here hi is argument sent to abc.py, you can always add more.

 return 0;
 }

Python代码(另存为abc.py)

 import sys

 total = len(sys.argv)
 cmdargs = str(sys.argv)

 print ("The total numbers of args passed to the script: %d " % total)
 print ("Args list: %s " % cmdargs)


 # Parsing args one by one 
 print ("Script name: %s" % str(sys.argv[0]))
 print ("First argument: %s" % str(sys.argv[1]))
 print ("Second argument: %s" % str(sys.argv[2]))

阅读更多-( http://www.cyberciti.biz/faq/python-command-line-arguments-argv-example/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM