如何使用Python在文件中追加位?

如何使用Python在文件中追加位?,python,bit-manipulation,Python,Bit Manipulation,我正在写一个程序,从一个文件到另一个文件读写位。我发现了一个名为bitstring的库,它可以帮助将位作为字符串进行操作。然而,这个库帮助我读位,但我不能写读位。输入和输出文件都有相同的大小,所以就字节而言没有问题。这是我代码的一部分 import bitstring file = bitstring.ConstBitStream(filename='paper.pdf') print(file.length) bits_to_read = 5000000 last_bits = 0 w

我正在写一个程序,从一个文件到另一个文件读写位。我发现了一个名为bitstring的库,它可以帮助将位作为字符串进行操作。然而,这个库帮助我读位,但我不能写读位。输入和输出文件都有相同的大小,所以就字节而言没有问题。这是我代码的一部分

import bitstring


file = bitstring.ConstBitStream(filename='paper.pdf')
print(file.length)

bits_to_read = 5000000
last_bits = 0

while file.pos < file.length-bits_to_read:
    bits = file.read(bits_to_read)
    str_bits = bitstring.BitArray(bits).bin



rest = file.length - file.pos
bits = file.read(rest)
str_bits = bitstring.BitArray(bits).bin
导入位字符串
file=bitstring.ConstBitStream(filename='paper.pdf')
打印(文件长度)
位到位读取=5000000
最后\u位=0
file.pos

非常感谢。

所以,我找到了一个解决办法。我将结果位附加到一个变量中,然后导出。这是代码的一部分:

while file.pos < file.length-bits_to_read:
    bits = file.read(bits_to_read)
    str_bits = bitstring.BitArray(bits).bin
    encrypted_bits = ''.join(encrypt(str_bits, cipher))
    exported_str = exported_str + encrypted_bits

rest = file.length - file.pos
bits = file.read(rest)
str_bits = bitstring.BitArray(bits).bin
exported_str = exported_str + str_bits

exported_bits = bitstring.BitArray(bin=exported_str)
with open(output_name, 'wb') as f:
    f.write(exported_bits.tobytes())
当file.pos
你说的“我无法写入读取位”是什么意思。告诉我们您尝试了哪些功能,结果如何?你是用追加还是追加二进制模式打开第二个文件的?所以,我从文件中读取位并对它们进行处理,加密。接下来,我想将结果位写入另一个文件。我唯一的解决方案是以字节的形式写入。但是,我想做的就像流媒体一样。有32个点击,你能解释一下(在问题正文中,而不是在评论中)为什么你想做的是不同的吗?此外,在上,您必须显示您尝试的代码以及它给出的任何错误。@smci thx,刚刚找到了一个解决方案。这是否回答了您的问题?