有什么方法可以从二进制格式中实际获取 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
这会将字符串中的每个字节转换为 8 个二进制数字,并用空格分隔它们。您可以轻松更改分隔符。
data = " ".join(bin(ord(b))[2:].rjust(8, "0") for b in data)
使用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()