gpt4 book ai didi

python - 如何将 for 循环推进 2 次迭代?

转载 作者:行者123 更新时间:2023-11-28 20:39:19 24 4
gpt4 key购买 nike

我正在阅读一个大文本文件,我需要从特定行中读取一个数字。该文件如下所示:

....
unknown number of lines
....
ABCD
some random stuff
a number I want to read
....
....

我想从 ABCD 的“签名”行之后 2 行的行中读取数字,这是唯一的。现在我正在做的是:

with open(filename,'r') as f:
for line in f:
if line.rstrip('\n') == 'ABCD':
continue

continue 仅将 for 循环推进 1 次迭代。那么,我怎样才能让它再进行一次迭代以获得我实际需要的行呢?

最佳答案

您可以在 f* 上显式调用 next(for 循环通常为您完成)并推进迭代器,然后调用 继续:

for line in f:
if line.rstrip('\n') == 'ABCD':
next(f)
continue
print(line)

现在将打印:

....

unknown number of lines

....

a number I want to read

....

....

从而跳过 'ABCD''some random stuff'

在您确定ABCD 不是最终元素的一般情况下,这应该不会引起问题。不过,如果您想安全起见,可以将其包装在 try - except 中以捕获 StopIteration 异常。


* 在这种情况下,这是有效的,因为 f 是它自己的 iteratoriter(f) 是 f。一般来说,情况并非如此,对于列表,迭代器是它自己的独特对象 list_iterator,因此像这样推进它是行不通的。

关于python - 如何将 for 循环推进 2 次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38464529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com