2012-11-25 7 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

당신은 항상 그것은 결코 당신은 아마 쓸 의미 4. 도달하지 1로'found'을 설정'+ = 1 '대신에 발견 = 1'... – l4mpi

+0

감사가 들어 조금 바보 느낄'의 발견 지금 . 내가 어떻게 그것을 놓쳤는지 모르겠다! :) – downvoteme

답변

0

로 설정 후 절대 변경이 (UN-테스트)를 작성 약간 더 좋은 방법이있다

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

원래 질문을 수정해야합니다. 대답이 아닙니다. –

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 
관련 문제