以二进制格式Python显示1和0的字符串

时间:2012-09-10 03:57:40

标签: python string image file binary

有没有办法从二进制格式中实际获取1和0的字符串?

# read in image data
fh = open('test.png','rb')
data = fh.read()
fh.close()

# write binary to text file
fh = open('test.txt','w')
fh.write(data)
fh.close
fh.close()

如何将该数据字符串转换为1和0

2 个答案:

答案 0 :(得分:2)

这会将字符串中的每个字节转换为8位二进制数字,并用空格分隔。您可以轻松更改分隔符。

data = " ".join(bin(ord(b))[2:].rjust(8, "0") for b in data)

答案 1 :(得分:1)

使用with,这样您就不必明确关闭fh

with open('test.txt','w') as fh:
    fh.write("".join(bin(ord(x))[2:].zfill(8) for x in data)

如果文件很大,上面会占用大量内存,而应该以较小的块状态阅读data并多次调用write()

除了:
fh.close只是对关闭文件的方法的引用。要调用该方法(即关闭文件),您需要说fh.close()