【发布时间】:2014-09-29 20:59:09
【问题描述】:
我正在尝试将数据(文本、浮点数据)写入二进制文件,以便稍后由另一个程序读取。问题是这个程序(在 Fort95 中)非常特别。为了正确读取文件,每个字节都必须位于正确的位置。我尝试使用 Bytes 对象和 .encode() 进行写入,但运气不佳(我可以从文件大小看出它正在写入额外的数据字节)。我试过的一些代码:
mgcnmbr='42'
bts=bytes(mgcnmbr)
test_file=open(PATH_HERE/test_file.dat','ab')
test_file.write(bts)
test_file.close()
我也试过了:
mgcnmbr='42'
bts=mgcnmbr.encode(utf_32_le)
test_file=open(PATH_HERE/test_file.dat','ab')
test_file.write(bts)
test_file.close()
为了澄清,我需要的是整数值 42,写为 4 字节二进制。接下来,我会将数字 1 和 0 写入 4 字节二进制文件中。那时,我应该正好有 12 个字节。每个都是一个 4 字节的有符号整数,以二进制形式编写。我对 Python 很陌生,似乎无法解决。有什么建议? this 之类的东西?我需要完全控制每个整数(以及后来的 4 字节浮点数)的字节数。
谢谢
【问题讨论】:
-
查看标准库中的
struct.pack。
标签: python file python-3.x binary