1

我正在逐行处理文件

for line in mix_files[i]:
    if my_string in line:
       use the next line # How to get the next line

找到包含文本的行后,我需要处理下一行。有没有什么简单的方法来获取下一行(例如,增加一个迭代器),而不是不太舒服的方法:

get line number -> increment line number -> use the next line

谢谢你的帮助。

4

2 回答 2

2

是的,使用迭代器上的函数next()

next_line = next(mix_files[i])

请注意,StopIteration如果文件没有更多行,这可能会引发。您可以告诉next()返回默认值:

next_line = next(mix_files[i], None)

这将被返回而不是引发异常。

于 2013-06-23T13:58:02.557 回答
-1

Martijn 的反应很好,但您也可以使用 enumerate:

for j, line in enumerate(mix_files[i]):
    if my_string in line:
        try:
            next_line = mix_files[i][j+1]
        except IndexError:
            handle_end_of_file()
        else:
            do_whatever_with_next_line()
于 2013-06-23T14:25:13.120 回答