2013-06-23 77 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

的Martijn的反應是好的,但你也可以使用枚舉:

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 [I]'是一個序列;如果它是一個文件對象,這將無法工作。 –