我的代码是:
f=open(filein)
print f
print f.read()
for row in f:
print '0'
前两个打印语句按预期打印文件对象和文件中的行,但是print '0'
从未发生。如果我注释掉前两张照片,也不会发生。我想念什么?
答案 0 :(得分:6)
f.read()
将文件指针前进到文件末尾。迭代器没有任何内容可供读取,因此不会进入循环。
您可能希望f.readline()
仅读取单行行,并让循环遍历其余部分。但是,将直接读取和迭代混合在一起可能会无法正常工作,因为这会干扰内部缓冲。在这种情况下,请改用next
:
with open(filein) as f:
print(next(f)) # First line
for row in f: # Remaining lines
...
答案 1 :(得分:0)
f=open(filein)
print(f)
for row in f:
print('0')
f = f.read()
这应该可以解决问题。为什么要尝试在迭代之前阅读?