将 0/1 字符串以二进制形式写入文件

Python3中,我编写了一个压缩算法并生成了一个0/1字符串(即字符串中只有0或1),最后希望将该字符串以二进制形式写成文件(也就是压缩文件啦)。不知道如何操作比较优雅?
我想到的一个办法是以每8位作为一组,用int(bin_str[i:i+8],2)转成整数再写入文件,但是我的0/1字符串位数不一定是8的倍数。
还有其他办法吗?

讨论数量: 1
Jason990420

int(bString, 2).to_bytes((len(bString)+7) // 8, byteorder='big')
二进制字符串长度不够8位, 前面会补0
当然你要记录长度或差数, 取回时才能知道真正的长度

int.to_bytes(length, byteorder, *, signed=False)
Return an array of bytes representing an integer.

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!