作者:mtcz91 出处:http://www.cnblogs.com/mtcz91 欢迎转载,也请保留这段声明。谢谢!
如有错误,望不吝指出!
生成一个打包的二进制数据文件
输入如下代码:
1 F=open('data.bin','wb')2 import struct3 data = struct.pack('>i4sh',7,'spam',8)
在3.4.2中报错:
在2.7.13中正常执行:
查阅python帮助手册发现:
python3.4.2:
python3.4.2中struct模块通过对象bytes对c语言结构体中的类型进行转化。
python2.7.13:
python2.7.13中的struct模块通过用python字符串格式表示对c语言结构体中的类型进行转化。
所以想要在python3.4.2中正确执行文章开头打包二进制文件的代码必须先将string类型的值转化为bytes型:
转化后成功执行!