其实这个困扰了我很久……
一般情况下,我们是这么读文件的:
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
读到空行,不一定是EOF,可能就是空行
读到文件中的空行时,返回的不是空串'',而是换行符'\n'。所以应该是可以用这种方法的。