首页 > 编程语言 > 详细

python 3.X中打包二进制数据存储字符串出错原因分析

时间:2017-01-12 22:59:10      阅读:345      评论:0      收藏:0      [点我收藏+]

作者:mtcz91 出处:http://www.cnblogs.com/mtcz91 欢迎转载,也请保留这段声明。谢谢!

如有错误,望不吝指出!

生成一个打包的二进制数据文件

输入如下代码:

1 F=open(data.bin,wb)
2 import struct
3 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型:

技术分享

转化后成功执行!

python 3.X中打包二进制数据存储字符串出错原因分析

原文:http://www.cnblogs.com/mtcz91/p/6280010.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!