如何在 Python 3 中将整数写入二进制文件?
例如,我想将 6277101735386680763835789423176059013767194773182842284081 以恰好 24 个字节的二进制格式写入文件(无符号,我只会使用正整数)。我怎样才能做到这一点?我尝试了以下方法:
struct.pack("i", 6277101735386680763835789423176059013767194773182842284081)
这导致
ValueError: cannot fit 'int' into an index-sized integer
我对其他一些格式(“l”、“Q”)进行了相同的尝试,但这些也会导致错误:
struct.error: argument out of range
如果我可以将整数转换为 24 个字节,我就可以写入该文件,因为我知道该怎么做。但是,我似乎无法将整数转换为字节。
另外,如何确保每个整数恰好写入 24 个字节?我还将写入较小的数字(1000、2000、1598754、12),但是这些数字也应该占用 24 个字节。
之后如何再次从文件中读取整数?
使用 Python 3,您可以执行以下操作:
i = 6277101735386680763835789423176059013767194773182842284081
with open('out.bin', 'wb') as file:
file.write((i).to_bytes(24, byteorder='big', signed=False))
with open('out.bin', 'rb') as file:
j = int.from_bytes(file.read(), byteorder='big')
print(j)
Output:
$ python3 tiny.py
6277101735386680763835789423176059013767194773182842284081
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)