如何在Python3中将十进制数值以单字节形式存储到文件中
Python3 单字节数值二进制存储方案
实现方法
完全可以实现,0-255范围的无符号单字节整数、-128~127范围的有符号单字节整数都可以仅占用1字节空间存储,不需要按字符形式转文本存储。
操作核心是用二进制模式打开文件,直接写入整数转换后的字节对象,不需要走字符编码转换流程:
- 写文件示例
# 待存储的数值,示例为200 num = 200 # 转换为1字节无符号整数的字节对象 # 单字节场景下byteorder选big或little都不影响结果 byte_val = num.to_bytes(length=1, byteorder='big', signed=False) # 以二进制写模式打开文件,写入字节对象 with open("data.bin", "wb") as f: f.write(byte_val)
运行后生成的data.bin文件大小为1字节,符合需求。
- 读文件还原数值示例
with open("data.bin", "rb") as f: byte_val = f.read(1) # 从字节对象还原为整数 num = int.from_bytes(byte_val, byteorder="big", signed=False) print(num) # 输出200
注意事项
- 存储前请确认数值在对应单字节范围内:无符号单字节范围为0255,有符号单字节范围为-128127,超出范围
to_bytes方法会抛出异常,可提前做范围校验避免报错。 - 该操作为原生二进制存储,和UTF-8、GBK等字符编码无关,不需要做编码转换。
内容的提问来源于stack exchange,提问作者Thunder_Drag
相关产品推荐
相关产品推荐

