我在Python中使用cffi编写了以下代码:
from cffi import FFI
ffi = FFI()
ffi.cdef("int somefunc(char** data);")
lib = ffi.dlopen("somelib")
现在,我想用char**
调用somefunc
,并将数据获取到Python中somefunc
实际上填充了{
data = ffi.new("char**", ffi.NULL)
lib.somefunc(data)
那么,我现在应该如何将data
变量的结果转换成Python字符串呢?有什么想法吗
谢谢大家!
data[0]
或data[n]
给出数组中的第n项。(如果只有一个字符串,那将是data[0]
;我认为根据您问题中的细节是这样的。)这仍然是一个char *
,但您可以使用ffi.string(data[0])
将其解释为以空结尾的字节字符串。通常,您可能需要使用正确的编码将该字节字符串解码为普通unicode字符串相关问题 更多 >
编程相关推荐