2012-05-06 2 views
0

줄이 많이 들어있는 .txt 파일이 있습니다. 프로그램에서 어떤 줄을 인쇄하고 파이썬 셸에 인쇄하고 싶은지 묻습니다. .txt 파일의 이름은 packages.txt입니다.특정 줄을 파이썬에서 .txt 파일로 출력 하시겠습니까?

+2

나는 시도했다 : 'f = open ('packages.txt ') lines = f.readlines()' – EatMyApples

+1

죄송합니다. 코드 서식 지정 방법을 모르겠다 ...? – EatMyApples

+2

코드는 주석이 아닌 * 질문 *에 넣는 것이 가장 좋습니다. '{}'도구 모음 버튼을 사용하여 코드를 4 칸 들여 쓰기하여 질문의 코드를 포맷하십시오. –

답변

2

파일 크기가 큰 경우 readline을 사용하는 것이 좋지 않을 수도 있습니다. 읽어보기를 사용하면 readline을 사용하여 하나씩 읽는 것이 좋습니다.

line_number = int(raw_input('Enter the line number: ')) 
with open('packages.txt') as f: 
    i = 1 
    for line in f: 
     if i == line_number: 
      break 
     i += 1 
    # line now holds the line 
    # (or is empty if the file is smaller than that number) 
    print line 

는 전체 파일에 선행 읽을 수 없다 경우 줄 번호를 찾을 때까지, 당신은 단순히 반복 할 수

+0

감사합니다. 하지만 어떤 이유로 3을 입력하면 예를 들어 1-3 행에서 인쇄됩니까? – EatMyApples

+0

@Marga, s/i == 1/i = 1/ – spinlok

+0

@spinlok, s/i == 1/i = 1 /? 너 무슨 뜻이야? – EatMyApples

8

(코드에서 실수를 해결하기 위해 업데이트) :

with open('packages.txt') as f: 
    for i, line in enumerate(f, 1): 
     if i == num: 
      break 
print line 

또는 당신이 원하는 라인을 슬라이스 itertools.islice()을 사용할 수 있습니다 (이 약간 해키)

with open('packages.txt') as f: 
    for line in itertools.islice(f, num+1, num+2): 
     print line 
0

줄 번호를 사용하여 파일의 특정 줄을 참조하는 방법? java에서와 같이 행 번호 = i이고 파일이 f에 저장된 경우 f (i)가 수행합니다.

관련 문제