假设我有一个 4 字节的文件作为输入,我想输出:
bit + first two bytes + bit + last two bytes
添加的位只是标志。如何在 python 中执行此操作(仅使用内置函数),以使新文件只有 5 个字节(2 位 + 4 字节 ~= 5 字节)。
我熟悉file.read(x)
和其他 I/O 操作,但我不确定的部分是如何添加位。
编辑:我能够使用bitarray
python 库解决这个问题。这个模块支持做我想做的所有事情:
- 使用将文件中的字节读入位数组
fromfile()
- 使用追加位
append(True/False)
frombytes()
使用和 python 标准struct
模块附加具有特定大小的变量。- 将位数组写入文件(如果需要,使用填充)使用
tofile()
您还可以使用该python-bitstring
模块来获得类似的结果。