fp = open("a.txt")
#do many things with fp
c = fp.read()
if c is None:
print 'fp is at the eof'
除了上面的方法,还有什么方法可以判断fp是否已经在eof了?
最佳答案
fp.read()
读取到文件末尾,因此在成功完成后,您知道文件在 EOF;没有必要检查。如果它无法到达 EOF,它将引发异常。
当以 block 的形式而不是使用 read()
读取文件时,您知道当 read
返回的字节数少于您请求的字节数时,您遇到了 EOF。在这种情况下,下面的 read
调用将返回空字符串(不是 None
)。以下循环以 block 的形式读取文件;它最多调用一次 read
。
assert n > 0
while True:
chunk = fp.read(n)
if chunk == '':
break
process(chunk)
或者,更短:
for chunk in iter(lambda: fp.read(n), ''):
process(chunk)
关于python - 如何找出文件是否位于 `eof` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10140281/