2015-11-05 32 views
1

我有一個用imageJ腳本編寫的宏。我需要將這個宏重寫爲python3.4。我在閱讀模式下打開二進制文件:如何打開一個二進制文件作爲Python中的原始字符串?

b_f = open("image.bin", "rb") 
OverScan = 0 
sizeY = 480 
reg = OverScan + 10 

然後我試圖找到一種方法如何打開b_f作爲原始字符串時生效的問題。在imageJ腳本中,它看起來像這樣: s=File.openAsRawString(b_f,2*192*(1+sizeY)*reg); File.openAsRawString(path, count) - 打開一個文件並以字符串形式返回第一個計數字節。

python有沒有一些簡單的方法如何打開一個二進制文件作爲原始字符串? 我完全是python的新手。 感謝您的幫助提前。

+1

您嘗試過'b_f = open(「image.bin」,「rb」)。read()'? – saulspatz

+0

還沒有,我會盡量多謝,但我怎麼能指定它應該被讀爲原始字符串? – Ivana

回答

2

你已經打開了文件之後,該文件引用上有一個read()方法,這需要你要讀的字節數。

with open("image.bin", "rb") as b_f: 
    OverScan = 0 
    sizeY = 480 
    reg = OverScan + 10 
    binary_data = b_f.read(2*192*(1+sizeY)*reg) 

binary_data現在將bytes類型按住請求的字節數

+0

非常感謝您的回答! – Ivana

1

如果您想將整個文件讀入內存,只需調用文件的read()方法(不帶參數)即可。

如:

s = open("image.bin", "rb").read() 

如果你只是想讀取多達字節的特定號碼(如@Eric迪爾的例子),可以作爲參數傳遞給read方法傳遞

s = open("image.bin", "rb").read(SOME_NUMBER_OF_BYTES) 
相關問題