学习Python的过程中,遇到一个问题,在《Python学习手册》(也就是《learning python》)中,元组、文件及其他章节里,关于处理二进制文件里,有这么一段代码的处理:
>>>F=open('data.bin','wb')
>>>import struct
>>>data=struct.pack('i4sh',7,'spam',8)
>>>data
b'\x00\x00\x00\x07spam\x00\x08'
>>>F.write(data)\
>>>F.close()
实际上,无论是在python 2.x 或 3.x中,执行第三步data=struct,pack(...)时,输出会报错,报错:
Traceback (most recent call last):
File "", line 1, in
data=struct.pack('>i4sh',7,'spam',8)
struct.error: argument for 's' must be a bytes object
查看帮助文档,可以看到介绍:
ructstruct.pack(fmt, v1, v2, ...)
Return a bytes object containing the values v1, v2, � packed according to the for