나는 거대한 7000+ 라인의 텍스트 파일을 가지고있는 코드를 작성해야합니다. 10 줄마다 나누어서 다른 파일에 써야합니다.파이썬을 사용하여 txt 파일에서 매 10 줄을 선택하는 방법은 무엇입니까?
-7
A
답변
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)
가능한 복제 - https://stackoverflow.com/a/41937429/4098013 –
왜 할 수있는 파이썬 스크립트를 작성? https://linux.die.net/man/1/split을보십시오. –