gpt4 book ai didi

python - 如何在 Python 2.x 中读取/写入二进制 16 位数据?

转载 作者:太空狗 更新时间:2023-10-30 00:30:36 24 4
gpt4 key购买 nike

我必须读写二进制数据,其中每个数据元素:

  • 大小 = 2 字节(16 位)
  • 编码 = 带符号的 2 的补码
  • endiannes = 大或小(必须是可选)

是否可以不使用任何外部模块?如果是,

  1. 如何从二进制文件中读取此类数据使用 read() 将文件放入数组 L 中整数?
  2. 如何写整数数组L使用 write() 写入二进制文件?

最佳答案

我认为你最好使用 array模块。它默认以系统字节顺序存储数据,但您可以使用array.byteswap() 进行字节顺序之间的转换,您可以使用sys.byteorder 查询系统字节顺序。示例:

# Create an array of 16-bit signed integers
a = array.array("h", range(10))
# Write to file in big endian order
if sys.byteorder == "little":
a.byteswap()
with open("data", "wb") as f:
a.tofile(f)
# Read from file again
b = array.array("h")
with open("data", "rb") as f:
b.fromfile(f, 10)
if sys.byteorder == "little":
b.byteswap()

关于python - 如何在 Python 2.x 中读取/写入二进制 16 位数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com