Python将文件读入缓冲区,并在缓冲区已满时处理结果为块

Python将文件读入缓冲区,并在缓冲区已满时处理结果为块,python,Python,我需要读取特定块中的二进制文件,但在某些情况下,该文件在读取时会获得新数据。 所以我认为解决方案是将文件读入缓冲区,直到缓冲区满,然后处理缓冲区中的数据,并开始用新数据填充它。 在本例中,我读取的是160字节 我的测试代码如下所示 with open('test.raw',"rb") as f: byte = f.read(160) while byte != b"": byte = f.read(160) python方法是编写一个生成器函数。由于此生成器处

我需要读取特定块中的二进制文件,但在某些情况下,该文件在读取时会获得新数据。 所以我认为解决方案是将文件读入缓冲区,直到缓冲区满,然后处理缓冲区中的数据,并开始用新数据填充它。 在本例中,我读取的是160字节

我的测试代码如下所示

with open('test.raw',"rb") as f:
    byte = f.read(160)
    while byte != b"":
        byte = f.read(160) 

python方法是编写一个生成器函数。由于此生成器处理一个需要在以后关闭的文件资源,因此我们应该将其包装为一个,并使用
with
块使用
中的块

从contextlib导入contextmanager
@上下文管理器
def文件块(文件名、块大小):
f=打开(文件名为“rb”)
尝试:
def gen():
b=f.read(块大小)
而b:
产量b
b=f.read(块大小)
产量gen()
最后:
f、 关闭()
用法:

将文件块('test.raw',160)作为块:
对于块中的块:
#处理区块
打印(块)

我认为问题在于如何一次处理160字节的文件,而不是一次将其全部读入内存。我可以看出问题是如何形成的。很抱歉。是的,我需要关于如何在有更多数据进入时只读取数据块并填充缓冲区的帮助