【发布时间】:2015-01-30 01:34:36
【问题描述】:
如何在 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 python-3.x io binary integer