如何将不同类型的数据写入二进制文件

时间:2019-01-12 17:02:34

标签: python struct binaryfiles

据我了解,I是一个格式字符的示例,它表示无符号整数,而f用于表示浮点数

但是当我尝试将[120,3.5,255,0,100]作为字节写入二进制文件时:

from struct import pack
int_and_float = [120,3.5,255,0,100]
with open ("bin_file.bin","wb") as f:
    f.write(pack("IfIII",*bytearray(int_and_float)))

输出

  

TypeError:必须为整数

那么不可能将浮点数和整数作为字节存储在同一列表中吗?

1 个答案:

答案 0 :(得分:1)

请勿传递UIViewController。将参数直接作为参数传递:

bytearray

f.write(pack("IfIII", *int_and_float)) 调用引发您看到的异常,您甚至在这里甚至不需要这种类型:

bytearray()

>>> int_and_float = [120,3.5,255,0,100] >>> bytearray(int_and_float) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: an integer is required 接受整数(和字符串)并产生字节作为输出:

struct.pack()