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

时间:2019-05-16 13:51:21

标签: python

我的代码是:

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

for row in f:
    print '0'

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

2 个答案:

答案 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()

这应该可以解决问题。为什么要尝试在迭代之前阅读?