python - 将包含 0's and 1' 的列表转换为位数组(使用位数组模块)并输出到二进制文件错误

标签 python file binary output

我有一个独特的问题(至少从我在这里花在 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

有没有办法将二进制数据直接输出到二进制文件? 我根本不介意第三方模块的建议。但越简单越好。

最佳答案

您需要使用以下方法之一来生成 bytesstr 字符串对象:

  • .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/

相关文章:

Python Unicode 字符串和 Python 交互式解释器

python - 元组列表中的双重迭代

java - 多语言应用程序的项目目录结构

java - 如果文件名不存在,如何写入新文件并追加文件?

file - 在脚本中通过 vim 将文件编码更改为 utf-8

c++ - 无法读取二进制文件

python - 如何在Python中的两个不同类之间进行运算符重载

android - 如何在 Android 中创建文件?

powershell - 通过 Powershell 十六进制编辑二进制文件的方法

python - python 中带符号的十六进制短值的带符号十进制