python将数据写入文件中_用Python将二进制数据写入文件

你需要struct模块。import struct

fout = open('test.dat', 'wb')

fout.write(struct.pack('>i', 42))

fout.write(struct.pack('>f', 2.71828182846))

fout.close()

struct.pack中的第一个参数是格式字符串。

格式字符串中的第一个字符指示数据的字节顺序或endianness(是存储在第一个字节中最重要或最不重要的字节-大端或小端)。端性因系统而异。如果“>”不起作用,请尝试“<”。

格式字符串中的第二个字符是数据类型。毫不奇怪,“i”代表整数,“f”代表浮点数。字节数由类型决定。例如,short或“h”是两个字节长。也有无符号类型的代码。”例如,H“对应于无符号的缩写。

struct.pack中的第二个参数当然是要打包到bytes对象中的值。

我告诉你我在一些事情上撒了谎。首先我说字节数是由类型决定的。这只是部分事实。给定类型的大小在技术上依赖于平台,因为C/C++标准(Stutt模块基于此)只指定了EM>最小EEE>大小。这就引出了第二个谎言。格式字符串中的第一个字符还编码将使用标准(最小)字节数还是本机(依赖于平台)字节数。(同时“>”和“<”保证使用标准的最小字节数,在整数“i”或浮点“f”的情况下实际上是四个字节)。它还对数据的alignment进行编码。

还可以将多个原语打包到单个字节对象中,并实现相同的结果。import struct

fout = open('test.dat', 'wb')

fout.write(struct.pack('>if', 42, 2.71828182846))

fout.close()

当然,还可以使用struct.unpack解析二进制数据。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值