Python中readline何时算EOF?

其实这个困扰了我很久……

一般情况下,我们是这么读文件的:

for line in open("xxx"):
    print line

但是有时候,我们想自己控制读取每一行,即open得到fp后,readline(),何时是退出呢?

经过查找N多文档,得到一种很隐晦的说法是当返回空串时表示退出。

于是写法是:

fp = ....
while True:
    line = fp.readline()
    if len(line)==0:
        break
    #.....
    Do what you want

其实,可以不用len判断,而用not判断。Python中,空串的not返回True,即not line时为读到EOF,如下:

fp = ....
while True:
    line = fp.readline()
    if not line:
        break
    #.....
    Do what you want

2 thoughts on “Python中readline何时算EOF?

  1. Anonymous

    读到文件中的空行时,返回的不是空串'',而是换行符'\n'。所以应该是可以用这种方法的。

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *