我想做一个简单的操作,但是我做不到。我有一串由编码算法导出的“0”和“1”。我想将它写入文件,但我认为我做错了。
我的字符串类似于'11101010000......10000101010'
实际上我正在写一个二进制文件:
print 'WRITE TO FILE '
with open('file.bin', 'wb') as f:
f.write(my_coded_string)
print 'READ FROM FILE'
with open('file.bin', 'rb') as f:
myArr = bytearray(f.read())
myArr = str(myArr)
如果我查看文件的大小,就会发现文件很大。所以我想我正在使用整个字节来写入每个 1 和 0。对吗?
我找到了一些使用“struct”函数的例子,但我没能理解它是如何工作的。
谢谢!
请您参考如下方法:
因为输入的二进制是字符串,python 将每一位写入一个字符。 您可以使用 bitarray 编写您的比特流来自
的模块像这样:
from bitarray import bitarray
str = '110010111010001110'
a = bitarray(str)
with open('file.bin', 'wb') as f:
a.tofile(f)
b = bitarray()
with open('file.bin', 'rb') as f:
b.fromfile(f)
print b
