gpt4 book ai didi

python - 打开时不读取文件的最后一 block

转载 作者:太空宇宙 更新时间:2023-11-04 10:52:18 25 4
gpt4 key购买 nike

我正在尝试逐个读取文件:

def buf_read2(filename, buffer_size):

with open(filename, 'rb') as f:
buffer = f.read(buffer_size)

print buffer # and do other stuff with it

这不会读取文件的最后一 block 。例如,如果一个文件是 129 字节,而我将 buffer_size 设置为 128,则不会读取最后一个字节。

虽然这种老派方法有效:

def buf_read1(filename, buffer_size):

f = open(filename, 'rb')
while True:
buffer = f.read(buffer_size)
if not buffer:
break

print buffer # and do other stuff with it

f.close()

我做错了什么?

最佳答案

with 不是循环,因此在您的第一个示例中,read() 仅被调用一次。

您仍然需要包含一个循环:

with open(filename, 'rb') as f:
while True:
buffer = f.read(buffer_size)
if not buffer:
break
print buffer # and do other stuff with it

关于python - 打开时不读取文件的最后一 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com