在python中从二进制值创建一个文件

时间:2017-05-01 15:33:02

标签: python file binary

我创建了一个脚本,允许我读取整个文件的二进制表示,但我找不到使用python将二进制流写回文件的方法。

我用来获取二进制值的代码如下:

 fileBin = ""
 bytes = bytearray(open(file, "rb").read())
 for i in range(0, len(bytes)):
     fileBin = fileBin + str(('{:08b}'.format(bytes[i])))
 return fileBin

1 个答案:

答案 0 :(得分:0)

我能够找到解决方案,并使用字节写一个全新的文件。问题在于用于表示字符串的代码:在尝试写一个字符串(即“101010111000”)时,我实际上是在文本文件中写入其ASCII值。

你需要做什么:

  • 取字符串的每8个字符
  • 转换int
  • 中的那些字符
  • 将结果转换为以字节结尾(我输入了整个列表)
  • 利润

我使用的代码如下:

    """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))