2013-06-23 4 views
1

Я обрабатываю файл построчноPython, линия итератор

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 

Спасибо за вашу помощь.

ответ

2

Да, используйте next() function итератора:

next_line = next(mix_files[i]) 

Обратите внимание, что это может поднять StopIteration, если файл не имеет больше линий. Вы можете сказать, next() вернуть значение по умолчанию вместо:

next_line = next(mix_files[i], None) 

который будет возвращен, а не поднимать исключение.

0

ответ Мартейн это хорошо, но вы также можете использовать Перечислим:

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() 
+0

только если 'mix_files [я]' последовательность; если это файл, это не сработает. –