我创建了一个脚本,允许我读取整个文件的二进制表示,但我找不到使用python将二进制流写回文件的方法。
我用来获取二进制值的代码如下:
fileBin = ""
bytes = bytearray(open(file, "rb").read())
for i in range(0, len(bytes)):
fileBin = fileBin + str(('{:08b}'.format(bytes[i])))
return fileBin
答案 0 :(得分:0)
我能够找到解决方案,并使用字节写一个全新的文件。问题在于用于表示字符串的代码:在尝试写一个字符串(即“101010111000”)时,我实际上是在文本文件中写入其ASCII值。
你需要做什么:
我使用的代码如下:
"""Reads file as binary string"""
def openFileBinary(file):
fileBin = ""
bytes = bytearray(open(file, "rb").read())
for i in bytes:
fileBin = fileBin + str(('{:08b}'.format(i)))
return fileBin
"""Writes string to file as binary"""
def writeFile(stream):
with open("output", "wb") as f:
f.write(bitstring_to_bytes(stream))
"""Converts binary string into bytes"""
def bitstring_to_bytes(s):
b = bytearray()
w = [int(s[i:i+8],2) for i in range(0, len(s), 8)]
return(bytes(w))