我想以二进制方式将数据(文本、浮点数据)写入文件,以便稍后由另一个程序读取。问题是这个程序(使用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个字节的二进制表示。接下来,我会用4个字节的二进制书写数字1和0。这时,我应该正好有12个字节。每个字节都是一个4个字节的有符号整数,以二进制形式书写。我对Python还不太熟悉,似乎无法使其正常工作。有什么建议吗?类似于这个?我需要完全控制每个整数(以及稍后的4个字节浮点数)占用的字节数。
谢谢
struct.pack
。 - Wooble