szwangbin001 发表于 2022-7-25 20:43

关于struct.pack问题

大佬们,Lua代码struct.pack(">!1I4", 62)怎么转化成python代码,使用python的struct模块,会报struct.error: bad char in struct format错误,有大佬知道要怎么改吗

subney 发表于 2022-7-26 08:14

# 结构体
```ad-note

struct模块提供了一些函数,把打包的字节序列转换成不同类型字段组成的元组,还有一些函数用于执行反向转换,把元组转换成打包的字节序列。struct模块能处理bytes、bytearray和memoryview对象。

```
```python
import struct

fmt='<3s3sHH'
with open('sample.gif','rb') as f:
    img=memoryview(f.read())

header=img[:10]
bytes(header)# b'GIF89a+\x02\xe6\x00'
struct.unpack(fmt,header)
# (b'GIF',b'89a',555,230)
del header
del img
```
## 结构体格式
- `<`:小字节序
- `3s3s`:2个3字节序列
- `HH`:2个16位整数
## 类型标识
- b,有符号单字节
- B,无符号单字节
- u,Unicode字符
- h|H,2字节整数
- i|I,2字节整数
- l|L,4字节整数
- f,单精度浮点数
- d,双精度浮点数

chenguoguo1990 发表于 2022-7-26 08:38

好东西,谢谢楼主

szwangbin001 发表于 2022-7-26 11:07

有没有大佬指点一下
页: [1]
查看完整版本: 关于struct.pack问题