如何在python中打开二进制文件作为原始字符串?

时间:2015-11-05 14:52:48

标签: python binaryfiles rawstring

我有一个用imageJ脚本编写的宏。我需要将这个宏重写为python3.4。我在阅读模式下打开了一个二进制文件:

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完全不熟悉。 感谢您的帮助。

2 个答案:

答案 0 :(得分: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类型并保留您要求的字节数

答案 1 :(得分:1)

如果您希望将整个文件读入内存,只需调用文件的read()方法(不带参数)即可。

例如:

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

如果您只想读取特定数量的字节(如@Eric Dill的例子),可以将其作为参数传递给read方法:

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