【问题标题】:How to open a binary file as raw string in python?如何在python中将二进制文件作为原始字符串打开?
【发布时间】:2015-11-05 14:52:48
【问题描述】:

我有一个用 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) - 打开一个文件并以字符串形式返回前 count 个字节。

在 python 中有一些简单的方法可以将二进制文件作为原始字符串打开吗? 我对python完全陌生。 提前感谢您的帮助。

【问题讨论】:

  • 你试过b_f=open("image.bin", "rb").read()吗?
  • 还没有,我会尝试非常感谢,但是我如何指定它应该被读取为原始字符串?

标签: python binaryfiles rawstring


【解决方案1】:

打开文件后,该文件引用上有一个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 类型并保存您要求的字节数

【讨论】:

  • 非常感谢您的回答!
【解决方案2】:

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

例如:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 2016-05-21
    • 1970-01-01
    相关资源
    最近更新 更多