我有这个用Python 2.7解析的文件
a
b
我用这种方式解析:
f = open("file.txt", "r")
for l in f:
if l == "a\n":
break
# this causes an error
print f.readline()
这导致:
ValueError: Mixing iteration and read methods would lose data
为什么Python会抛出此错误?我想读取一个文件,直到循环中满足条件,然后通过调用readline()
读取结果。不知道为什么会出现错误,因为readline()
调用超出了引用文件句柄的循环。
答案 0 :(得分:2)
您可以通过显式调用next()
从文件迭代器获取下一行。
with open("file.txt") as f:
for l in f:
if l == "a\n":
break
line_after_a = next(f)
print line_after_a