我的代码是:
f=open(filein)
print f
print f.read()
for row in f:
print '0'
Run Code Online (Sandbox Code Playgroud)
前两个打印语句按预期打印文件对象和文件中的行,但是print '0'从不发生。如果我注释掉前两张照片,也不会发生。我想念什么?
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)
| 归档时间: |
|
| 查看次数: |
38 次 |
| 最近记录: |