将字节数组从 c++ 传递给 python

Posted

技术标签:

【中文标题】将字节数组从 c++ 传递给 python【英文标题】:passing byte array from c++ to python 【发布时间】:2017-07-14 13:42:47 【问题描述】:

正如标题所示,我想将一个字节数组从 c++ 传递给 python。我知道我需要以某种方式将我的字节数组转换为 PyObject ,但这就是我卡住的地方。有没有人可以帮我解决这个问题。

提前致谢,

【问题讨论】:

【参考方案1】:

PyBytes_FromString 假设 Python3+:

https://docs.python.org/3/c-api/bytes.html

Python2.x下PyString_FromString

https://docs.python.org/2/c-api/string.html

【讨论】:

我正在使用 opencv 矩阵到这样的字节转换 std::memcpy(bytes,image.data,size * sizeof(byte));所以这不是一个字符串。如何将它与 PyBytes_FromString 一起使用? @las *_FromString 函数将 const char* 作为参数。你说你有一个字节数组。所以我认为这正是它的本质。这有点令人困惑,但字符串和字节数组在几天前就意味着同样的事情。如果您在字节序列中允许空值,那么*_FromStringAndSize 可能是更好的选择。 反正我不知道opencv,但如果你还有别的什么,首先你必须想办法把它转换成char*

以上是关于将字节数组从 c++ 传递给 python的主要内容,如果未能解决你的问题,请参考以下文章

将字节数组从 c++ 传递到 c# 程序集都有哪些不同的方法?

将 C# 3D 数组作为 1D 字节数组传递给 C++ 库

将 C# char 数组传递给 C++ 与字节数组不同

使用 Dllimport 将一个非常大的字符串作为字节数组从 C++ 传递到 C#

将字节数组从 c++ 传递到 c#(单声道)

将字节数组从 Unity C# 传递到 C++ 库方法