1
使用CFFI library for Python,我试图将一个Python字符串转换成char *,以便我可以传递它到一个接受char *的C函数。我似乎无法弄清楚正确的咒语是什么。CFFI:TypeError:ctype'char []'的初始值设定项必须是字节或列表或元组,而不是str
考虑这个例子:
>>> from cffi import FFI
>>> ffi = FFI()
>>> ffi.new("char[]", "bob")
结果是:
TypeError: initializer for ctype 'char[]' must be a bytes or list or tuple, not str
下无法正常工作或:
>>> ffi.new("char*", "bob")
它说:
TypeError: initializer for ctype 'char' must be a bytes of length 1, not str
仅供参考 - 我已经在问题标题中包含了CFFI,因为还有其他方法可以在Python中获取此错误。据我所知,这是第一次针对这个特定的错误和Python中的CFFI库问及。 – 010110110101
选择一个编码,然后选择“bob”.encode('ascii')'你的str - 或者使用'b“bob”'如果它是字面值 – o11c