假设我必须在文件中存储一些整数,如 1024 或 512 或 10240 或 900000 ,但条件是我只能消耗 4 个字节(不少于或最大值)。但是在使用 write 方法编写 python 文件时,它存储为“1024”或“512”或“10240”,即它们写为ascii值,但我想直接存储它们的二进制值。
任何帮助都会非常感激。
use the struct http://docs.python.org/library/struct.html module
>>> 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中,你可以使用to_bytes
方法 int. 1024 周围的括号仅在 1024 时才需要。解析为浮点数并会导致语法错误。
>>> (1024).to_bytes(4, "big")
b'\x00\x00\x04\x00'
>>> (1024).to_bytes(4, "little")
b'\x00\x04\x00\x00'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)