2014-11-08 2 views
1

디렉토리 안에 SINGLE COLUMNS가있는 텍스트 파일이 여러 개 있습니다. 중복 된 줄을 제거하여 모든 텍스트 파일을 하나의 텍스트 파일로 결합해야합니다. 다음 코드를 사용하고 있습니다. 그러나 내 텍스트 파일은 매우 큽니다. 그래서 그것을하는 가장 빠르고 가장 빠른 방법은 무엇입니까?중복 된 줄이없는 여러 텍스트 파일을 결합하는 가장 빠른 방법

import os, glob 
files = glob.glob('*.txt') 

with open('combinedfile.txt','w') as fo: 
    all_lines = [] 
    for f in files: 
     with open(f,'r') as fi: 
      all_lines.append(fi.read()) 
    all_lines = set(all_lines) 

    for item in all_lines: 
     fo.write(item + '\n') 
+0

파이썬 2.7 – Borys

답변

1

중복 된 내용을 발견하지 못하도록 전체 파일 내용이 아닌 개별 줄을 저장했습니다. 이것을 readlines으로 변환했습니다. 글을 쓸 때 먼저 텍스트에 가입하고 글을 써서 몇 가지 추가 성능을 제공 할 수 있습니다.

import os, glob 
files = glob.glob('*.txt') 

all_lines = [] 
for f in files: 
    with open(f,'r') as fi: 
     all_lines += fi.readlines() 
all_lines = set(all_lines) 

with open('combinedfile.txt','w') as fo: 
    fo.write("\n".join(all_lines)) 
+0

을 사용하고 있는데 왜 코드가 outfile의 모든 줄 다음에 공백을 생성합니까? – Borys

+0

한 칸? 아니면 무슨 뜻이야? –

+0

모든 대체 라인의 틈 – Borys

관련 문제