我正在一个很大的循环中读取一个txt文件。 当在一个特定的行上迭代时,会有一些条件,根据满足的条件,我想返回并从另一个起始行号开始再次迭代该文件。你知道吗
例如:
with open(filename) as f:
for inputline in f:
if inputline.strip() == 'abc':
#goto line 3 and start the loop again
print(inputline.strip())
假设输入文件是:
1
2
3
4
5
abc
6
7
输出应为:
1
2
3
4
5
3
4
5
3
4
5.....
我知道这个输入最终会进入一个无限循环,永远不会终止。但我仍然想知道如何使用简单的readline实现这个功能。我不能使用seek命令,因为每行的长度不一致。你知道吗
您可以使用recursive函数和enumerate来实现这一点:
您可以使用
file.seek()
:通过调用file对象的
tell
方法,可以使用列表跟踪每一行的结束位置(也是下一行的开始位置),然后使用seek
方法将文件指针重新定位回上一行的位置:相关问题 更多 >
编程相关推荐