我有一个独特的问题(至少从我在这里花在 SO 和 Google 搜索上的时间来看)。
我有一个包含不同列表长度的 0 和 1 整数的列表,例如:
[0, 1, 0, 0 ,1, 0, 0, 0, 0, 0, 0...]
我正在将此列表转换为位数组
,如下所示:
from bitarray import bitarray
def binWise(sequence):
newseq = bitarray(sequence)
return newseq
这将返回以下格式的二进制输出:
b'01001000001'
但是,当我尝试将其作为二进制直接写入文件时,我得到了
TypeError: 'bitarray' does not support the buffer interface
有没有办法将二进制数据直接输出到二进制文件? 我根本不介意第三方模块的建议。但越简单越好。
最佳答案
您需要使用以下方法之一来生成 bytes
或 str
字符串对象:
.to01()
生成由'0'
和'1'
字符组成的字符串。.tobytes()
生成一个bytes
对象,其中每个 8 位序列(一个字节)转换为bytes
序列中的一个字节。bitarray
被填充到 8 的倍数的长度。.tofile(f)
将bitarray
信息写入文件(以二进制模式),再次填充到 8 倍数的长度。
关于python - 将包含 0's and 1' 的列表转换为位数组(使用位数组模块)并输出到二进制文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38312736/