2016-01-17 38 views
1

每一行我有這樣的代碼:Python3.4:在文本

for x in adele_text: 
    if "Hello, its me" in x: 
     print (x) 

它打印,其中「你好,我的」是行。我希望能夠打印下一行,以及此行之後的行。我如何才能打印下一個x行,也許是之前的x行?

會有辦法打印最後2句話嗎?句子與「。」分隔。

回答

2

您可以使用內置的next()

number_of_lines_to_print = 2 

with open(filename) as adele_text: 
    for line in adele_text: 
     if "Hello, its me" in line: 
      # printing next "number_of_lines_to_print" lines 
      for _ in range(number_of_lines_to_print): 
       print(next(adele_text, '')) 
      break # remove if you want to continue searching the file 

注意,在next(adele_text, '')空字符串是很重要的 - 它有助於避免StopIteration exception的情況下,我們是在文件的結尾被提出。

+0

只是要注意......這依賴於'adele_text'是一個'TextIOWrapper'(爲了循環和「下一個」的合作) – donkopotamus

+0

@ donkopotamus是的,我真的不喜歡這個解決方案,它只解決問題的一部分。讓我們看看這對OP是否足夠了。謝謝。 – alecxe

+0

那麼,我試圖運行它,它打印出來:TypeError:'str'對象不是迭代器上線:print(next(adele_text,'')) –