gpt4 book ai didi

python - 如何在 Python 中编写位长度不是 8 的倍数的二进制文件?

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:04 25 4
gpt4 key购买 nike

我正在开发一个为项目生成虚拟二进制文件的工具。我们有一个描述真实二进制文件的规范,这些文件是从具有不同位长度的值流创建的。我使用输入和规范文件来创建值列表,并使用 bitstring 库的 BitArray 类来转换值并将它们连接在一起。

问题是值的长度加起来并不总是完整的字节,我需要文件按原样包含这些位。通常我可以使用 BitArray.tofile(),但该方法会自动在末尾用零填充文件。

还有其他方法可以将位写入文件吗?

最佳答案

显然原始二进制文件只能存储字节,即 8 位的倍数。

当您需要存储数据(位)和元数据(关于数据的数据,在本例中为位长度)时,有两种方式:

  • 选择或发明一种文件格式,例如具有长度和 hexdump 的 JSON 结构(不节省空间,只是一个例子):

    {
    "length": 11,
    "data": "c3a"
    }
  • 使用 sidecar file元数据文件。这种情况不太常见。

关于python - 如何在 Python 中编写位长度不是 8 的倍数的二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098610/

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