fp.read()读取文件的末尾,因此,成功完成文件后,您知道文件位于EOF处;无需检查。如果无法达到EOF,则会引发异常。
当分块读取文件而不是用读取文件时
read(),您知道当
read返回的字节数少于您请求的字节数时,您遇到了EOF
。在这种情况下,以下
read调用将返回空字符串(不是
None)。以下循环读取大块文件;
read最多只会调用一次。
assert n > 0while True: chunk = fp.read(n) if chunk == '': break process(chunk)
或者,更短:
for chunk in iter(lambda: fp.read(n), ''): process(chunk)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)