2014-01-27 35 views
1

如何將二進制文件轉換爲python 3中的文本或ascii而不用導入任何庫? 例如我已經這個存儲在變量如何將二進制值轉換爲python 3中的文本或ascii?

0000000000000000000000000000000000000000010101000100100001000101001000000101001101000011010000010101001001001100010001010101010000100000010100000100100101001101010100000100010101010010010011100100010101001100000011010000101000001101000010100100001101001000010000010101000001010100010001010101001000100000010010010010000001010000010000010101001001001001010100110011101000100000010100110100010101010000010101000100010101001101010000100100010101010010001011000010000000110001001101110011100100110010 
+0

什麼將是二進制值,預期的輸出? –

+0

當你轉換它是一本書的標題 – user3238361

+0

就這樣。這是一個'bytes()'值還是一個'str()'? –

回答

1

砍輸入值成8「位」的塊,並使用int()將其轉換成一個整數,那麼chr()將其轉換爲一個字符:

for i in range(0, len(inputstring), 8): 
    print(chr(int(inputstring[i:i + 8], 2)), end='') 

會做到這一點。

演示:

>>> inputstring = b'0000000000000000000000000000000000000000010101000100100001000101001000000101001101000011010000010101001001001100010001010101010000100000010100000100100101001101010100000100010101010010010011100100010101001100000011010000101000001101000010100100001101001000010000010101000001010100010001010101001000100000010010010010000001010000010000010101001001001001010100110011101000100000010100110100010101010000010101000100010101001101010000100100010101010010001011000010000000110001001101110011100100110010' 
>>> for i in range(0, len(inputstring), 8): 
...  print(chr(int(inputstring[i:i + 8], 2)), end='') 
... 
THE SCARLET PIMPERNEL 

CHAPTER I PARIS: SEPTEMBER, 1792>>> 
+0

當我試圖訪問輸入字符串,這是while循環內我無法訪問while循環之外。你知道我可以在它完成後訪問它嗎? – user3238361

+0

@ user3238361:對不起,我有*不知道你在說什麼。您需要顯示代碼才能理解。這不會在這裏發表評論。也許你需要爲此提出一個新問題。 –

相關問題