从二进制文件读取的不同行为

我想读取128字节的二进制文件。

我尝试通过以下方式实现这一目标:

 with open('someFile.bin',"rb") as file:
     for block in file.read(128): 
            print(block)

结果,我每个块仅得到一个字节,但是得到128个块。 如果我这样做:

with open('someFile.bin',"rb") as file:
   block = file.read(128)
   print(block)

结果符合预期,block是一个128字节的二进制字符串。

为什么在这两种情况下读取方法的行为会有所不同,我如何才能达到以n字节为块读取完整文件的目标?

cd773213220 回答:从二进制文件读取的不同行为

file.read(n)返回一个n字节的可迭代对象。如第一种情况那样,使用for循环对其进行迭代将导致block一次仅保留一个字节。

在第二种情况下,您要打印整个可迭代的对象,即所有已读取的n个字节。

,

如果要遍历文件,则基本上可以使用file.read(128)。如果再次使用,此命令将给出下一个128字节。

本文链接:https://www.f2er.com/3110222.html

大家都在问