首页 > 解决方案 > 在 Python 上从 ascii int 列表创建 .bin 字节文件

问题描述

我正在尝试将 string / int 列表转换为 .bin 字节格式的最终​​文件:

final_data = ['3247', '5146', '6971', '-8192', '8192', '11192']
final_data2 = [int(i) for i in final_data]
arr = bytes(final_data2)
with open("data.bin", "wb") as fh:
    fh.write(arr)

但我收到了这个错误:

ValueError:字节必须在范围内(0、256)

如何知道我有负数和大于 256 的数字?

标签: pythonarrayspython-3.xbinarybyte

解决方案


你可以这样做:to_bytes()调用将每个int转换为二进制表示。

final_data = ['3247', '5146', '6971', '-8192', '8192', '11192']

with open("data.bin", "wb") as fh:
    for i in final_data:
      fh.write(int(i).to_bytes(32, byteorder = 'big', signed = True))

推荐阅读