2014-12-28 60 views
2

我設計了一種壓縮算法,它對文件的字節級表示進行操作。Python中的字節級操作

我想要做下列程序:

運行算法的大小爲k字節數組輸出壓縮材料

寫壓縮材料到一個新的文件

讀千字節重複,直到文件耗盡。

如何讀取文件的前k個字節?

此外我想這些字節是二進制格式。我注意到,當我使用open('filename','rb')方法時,python自動將字節轉換爲字符串字符,我希望實際以(0101101)的形式看到字節,而不是整數,字符串等。 ..

然後,我想直接寫在這個二進制格式,一個新的文件。

+0

如何「查看」字節與它們包含的數據無關。如果你用二進制模式打開一個文件,你可以從它讀取字節並按照你的意願去做。 – BrenBarn

+1

我認爲這篇文章涵蓋了你所問的大部分內容:http://stackoverflow.com/questions/1035340/reading-binary-file-in-python –

回答

4

我發現蟒蛇自動轉換成字節字符的字符串時,我使用open(「文件名」,「RB」)方法

這是不正確。 open('filename', 'rb').read(k)從文件返回到k字節。該值是一個bytes對象。您可以用二進制(「01」)格式打印它。見Convert Binary to ASCII and vice versa (Python)

可以讀bytes對象寫入到一個新的文件是:

open('output', 'wb').write(bytes_object) 

沒有任何形式的轉換(不'\n' - >'\r\n',沒有解碼/編碼使用的字符編碼 - 什麼)。