for i in open('xxx')的意思是:按从前到后顺序迭代输出文件的每一行内容
即
f = open('xxx') while True: i = f.readline() if not i: break
的意思,i的值为文件从前到后按顺序的一行内容。
这样open()就和range()函数一样了,这么设计是为了简化语法。
open()函数返回的值具有__next__函数,所以是一个可迭代对象,除了用for循环或者f.readline()获取下一行的值,也可以用next(f)或者f.__next__()。