我必须读取和写入二进制数据,其中每个数据元素:
是否可以不使用任何外部模块?如是,
Sve*_*ach 10
我认为你最好使用该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()
Run Code Online (Sandbox Code Playgroud)