为什么没有输入我的Python 3文件循环?

sch*_*oon 0 python

我的代码是:

f=open(filein)
print f
print f.read()

for row in f:
    print '0'
Run Code Online (Sandbox Code Playgroud)

前两个打印语句按预期打印文件对象和文件中的行,但是print '0'从不发生。如果我注释掉前两张照片,也不会发生。我想念什么?

che*_*ner 6

f.read()将文件指针前进到文件末尾。迭代器没有任何内容可供读取,因此不会进入循环。

你可能想f.readline()读只是一个单一的线,并有超过其余循环迭代。但是,将直接读取和迭代混合在一起可能会无法正常工作,因为这会干扰内部缓冲。在这种情况下,请next改用:

with open(filein) as f:
    print(next(f))  # First line
    for row in f:   # Remaining lines
        ...
Run Code Online (Sandbox Code Playgroud)