2016-12-22 1 views
2

텍스트 파일에서 한 번에 여러 N 개의 행을 반복하려고합니다. 예를 들어, 100 개의 행이 있고 한 번에 10 개씩 인쇄한다고하면 전체 파일을 반복 할 수 있습니다. 이것은 내가 얻은 것입니다.파이썬은 한 번에 여러 행을 반복합니다.

N=10 
f=open("data.txt") 
for i in range(N): 
    line=f.next().strip() 
    print line 
f.close() 
+1

달성하고자하는 것을 입/출력 예제로 제공 할 수 있습니까? – lmiguelvargasf

+2

"한 번에 10 장 인쇄"와 각 줄을 인쇄하는 것의 차이점은 무엇입니까? –

+1

관련 : http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks –

답변

5

당신은 반복자의 파일을 처리 할 수 ​​그냥 각 반복에에서 추가 항목을 : 파일 길이가 당신의 청크 크기로 나누어없는 경우

with open('data.txt') as f: 
    for line in f: 
     lines = [line] + [next(f) for _ in xrange(9)] # have 1 already, so need 9 
     # process lines 

대신 next(f, None)을 사용할 수 있습니다 lines을 처리하기 전에 None을 필터링하십시오.

+0

고마워요 어떻게 새 라인을 벗겨 내죠 \ n – BKCapri

+1

이것은 줄 수가 단계에서 나눌 수없는 경우'StopIteration' 오류를 발생 시키십시오 ... – brianpck

+0

흠, 파이썬 2.7에서 작동합니다. – BKCapri

관련 문제