如何在python中写入整数,特别是字节数(文件写入)

2024-04-25 17:49:36 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我必须在一个文件中存储几个整数,比如1024、512、10240或900000,但条件是我只能使用4个字节(不小于或最大值),但是在使用write方法编写python文件时,它存储为“1024”、“512”或“10240”,即它们以ascii值编写,但我想直接存储它们的二进制值。

任何帮助都是值得赞赏的。


Tags: 文件方法字节ascii二进制整数条件write
2条回答

使用struct模块

>>> import struct
>>> struct.pack("i",1024)
'\x00\x04\x00\x00'
>>> struct.pack("i",10240)
'\x00(\x00\x00'
>>> struct.pack("i",900000)
'\xa0\xbb\r\x00'

在Python3中,可以使用int的to_bytes方法。1024左右的paren只需要1024。作为浮点数进行分析并会导致语法错误。

>>> (1024).to_bytes(4, "big")
b'\x00\x00\x04\x00'
>>> (1024).to_bytes(4, "little")
b'\x00\x04\x00\x00'

The struct module就行了

>>> import struct
>>> f = open('binary.bin','wb')
>>> f.write(struct.pack("l",1024))
>>> f.close()

vinko@parrot:~$ xxd -b binary.bin
0000000: 00000000 00000100 00000000 00000000                    ....

相关问题 更多 >