2012-09-10 151 views
0

是否有任何方法可以從二進制格式中實際得到1和0的字符串?以二進制格式顯示1和0的字符串Python

# 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

這會將字符串中的每個字節轉換爲8個二進制數字並用空格分隔它們。您可以輕鬆更改分隔符。

data = " ".join(bin(ord(b))[2:].rjust(8, "0") for b in data) 
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()

相關問題