簡體   English   中英

C ++和Python之間的數據傳輸

[英]Data transfer between C++ and Python

我想在C ++和Python之間共享內存。

我的問題:

  1. 我正在使用C ++中的大數據集(最多6 GB的RAM)。 所有計算都是用c ++完成的。
  2. 然后,我想將所有結果“粘貼”到Python程序中。 但我只能在磁盤上寫入我的數據,然后從Python中讀取該文件,這是無效的。

有沒有辦法“映射”對應於C ++變量的內存,以便我可以從Python訪問數據? 我不想將6GB的數據復制到硬盤上。

第一條道路 :我認為更合適的方式是ctypes 您可以創建一個共享庫,然后在Python中加載共享庫的功能,並在Python中填充所需的所有數據容器。

在Windows中,您可以創建DLL,在Linux中,您可以創建共享的.so庫。

現在,這有一個優勢,即它將獨立於您的Python版本。

第二條路徑 :我認為它不太合適,但你可以讓它工作,這是Python C擴展 有了這個,你可以調用Python數據容器( PyObject s)並在C里面填充它們。

但是,您在此處編譯的代碼將始終需要鏈接到Python庫。

哪一個使用?

  • 如果您想要在C / C ++中調用某些函數,請使用ctypes,然后在Python中完成其余的工作。
  • 如果您想要在Python中調用某些函數,請使用Python C Extension,並且您希望在C / C ++中完成其余的工作。

使用這兩個選項,您可以在C ++和Python之間傳輸大量內存,而不必涉及任何磁盤讀/寫操作。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM