我正在尝试逐个读取文件:
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
这不会读取文件的最后一块。例如,如果文件为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 - 打开,因为不读取文件的最后一块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12991948/