2017-11-16 8 views

답변

0
with open(fname) as f: 
    content = f.readlines() 
    with open(fname) as g: 
     len_f = len(content) 
     for x in xrange(0, len_f): 
      if x % 10 = 0: 
       g.write(content[x]) 
       g.write("\n") #For new-line 
      else: 
       pass 
     g.close() 
    f.close() 

(파이썬 2.x에서)

키 테이크가는 요리 :

1) 개방하지 마십시오/각 행을 작성 후 쓰기 파일을 닫습니다.

2) 완료되면 파일을 닫습니다.

1

열고 파일, 출력 파일에 매 10 라인 작성 입력 라인 반복 : 범위가 종료 될 때

with open(in_name, 'r') as f: 
    with open(out_name, 'w') as g: 
     count = 0 
     for line in f: 
      if count % 10 == 0: 
       g.write(line) 
      count += 1 

open()context manager가 파일을 닫을 것이다.

파일 크기가 크면 생성기가 더 적합 할지도 모르지만 출력 결정은 간단히 계산하면됩니다. 따라서 f.readlines()[::10] 슬라이스를 사용할 수 있습니다.

from itertools import islice 

with open(in_name, 'r') as f: 
    with open(out_name, 'w') as g: 
     g.writelines(islice(f, 0, None, 10)): 

10 번째 줄마다 쓰기를 원하는 것으로 읽었습니다. 10 개의 청크 파일을 포함하는 많은 파일을 작성하려면 입력 파일을 모두 사용할 때까지 반복해야합니다. 이는 중복으로 표시된 질문과 동일하지 않습니다. 청킹이 파일의 끝을 읽으면 그 대답은 끊어집니다.

from itertools import islice, count 

out_name = 'chunk_{}.txt' 

with open(in_name) as f: 
    for c in count(): 
     chunk = list(islice(f, 10)) 
     if not chunk: 
      break 
     with open(out_name.format(c)) as g: 
      g.writelines(chunk)