我正在尝试将一些unsigned int数据打包到使用创建的字符串缓冲区中ctypes.create_string_buffer.
以下是代码段,以及显示错误在键盘上的运行示例:
import struct
import ctypes
import binascii
buf = ctypes.create_string_buffer(16)
struct.pack_into("=I=I=I", buf, 0, 1, 2, 3)
print binascii.hexlify(buf)
Run Code Online (Sandbox Code Playgroud)
这会产生以下错误:
...
struct.error: bad char in struct format
Run Code Online (Sandbox Code Playgroud)
如果底层缓冲区是特定的C类型,则文档不会提示您是否可以打包不同类型的数据.在这种情况下,尝试将unsigned int数据打包到具有底层c_char类型的字符串缓冲区中.任何人都知道这样做的解决方案,或者是否有特定的方法来创建可以打包任何类型的数据的缓冲区?
我试图在 python 中将纪元日期时间转换为字节数组,但它是 10 字节,它应该是 4 字节。
from time import time
curTime = int(time.time())
b = bytearray(str(curTime))
len(b) #comming as 10
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我出错的地方