2013-02-18 5 views
17

큰 텍스트 파일 (~ 7GB)이 있습니다. 나는 큰 텍스트 파일을 읽을 수있는 가장 빠른 방법이 있는지 찾고있다. 나는 프로세스를 가속화하기 위해 청크 단위로 여러 접근법을 사용하는 방법에 대해 읽었습니다. 예 effbot에서큰 텍스트 파일 (여러 GB)을 읽는 Python 빠른 방법

초당 96,900 텍스트의 라인을 처리하기 위해

# File: readline-example-3.py 

file = open("sample.txt") 

while 1: 
    lines = file.readlines(100000) 
    if not lines: 
     break 
    for line in lines: 
     pass # do something**strong text** 

을 제안한다. 다른 authors

from itertools import islice 

with open(...) as f: 
    while True: 
     next_n_lines = list(islice(f, n)) 
     if not next_n_lines: 
      break 
     # process next_n_lines 

list(islice(f, n)) 파일 f의 다음 n 라인의 목록을 반환합니다) (islice를 사용하는 것이 좋습니다. 루프 안쪽이 사용

+1

가 왜 확인하지 않습니다 ... 당신이 메모리에 한 번에 하나의 라인을 읽고, 완료되면 파일을 닫습니다 – piokuc

+0

제안 사항을 여기에서 확인하십시오 : http://stackoverflow.com/questions/14863224/efficient-reading-of-800-gb-xml-file-in-python-2-7 – BenDundee

+0

@Nix 나는 읽고 싶지 않습니다. 한 줄씩 줄이 덩어리로 묶입니다. –

답변

9
with open(<FILE>) as FileObj: 
    for lines in FileObj: 
     print lines # or do some other thing with the line... 

n 라인

의 덩어리에서 파일을 줄 것이다 당신에게 가장 빠른 것은 무엇입니까?
+2

모튼 라인이 너무 느려졌습니다. –

+5

aay, 너무 빨리 읽음 ... –

+0

FileObj의 루프 결과가 줄이 아닌 단일 문자 인 것처럼 보입니다. – 69444091