2012-11-25 113 views
0

所以,我可能會以這種錯誤的方式去解決問題,如果是這樣,我會欣賞以不同的方式解決問題,但這是我正在嘗試做的,以及我如何嘗試去做。打印出文件的某個部分

我正在編寫一個簡單的地址簿,基於我發現的一些初學項目建議,我正在慢慢實現它,但我無法弄清楚如何讓它搜索文件的某個部分。我希望它能打印名稱,地址,電話和手機。所有這些都在一條獨立的線上,總共4條線。

我用下面的代碼來實現:

def search_entries(): 
    found = 0 
    search = raw_input("Please enter the person's name: ") 
    for line in open('addbook.txt', 'r').readlines(): 
     if search in line: 
      found = 1 
     if found >= 1: 
      print line 
      if found == 4: break 

然而,不是印刷只是打印從這個人的名字這4條線將打印文件的其餘部分。任何幫助表示讚賞,謝謝。

+0

始終爲您'found'爲1,這樣它從來沒有達到4.您大概意思寫的'發現+ = 1',而不是'發現= 1' ... – l4mpi

+0

謝謝你提供的,覺得有點傻現在。不知道我錯過了它! :) – downvoteme

回答

0

意識到自己忘了一個計數器添加到代碼後不會改變:

def search_entries(): 
    found = 0 
    search = raw_input("Please enter the person's name: ") 
    for line in open('addbook.txt', 'r').readlines(): 
     if search in line: 
      found = 1 
     if found >= 1: 
      print line 
      found = found + 1 
      if found == 4: break 
+0

你應該編輯你原來的問題,這不是一個答案。 – 2012-11-25 12:38:09

0

found被設置爲1

+0

謝謝!直到我發佈後纔剛意識到:) – downvoteme

0

有寫這篇(未測試)的稍微好一點的辦法:

from itertools import islice 

with open('input.txt') as fin: 
    for line in fin: 
     if 'bob' in line: 
      next_3 = list(islice(fin, 3)) 
      print line, next_3 
      break 
相關問題