Tech note/Python Tech note
readline 속도를 빠르게 하기
야생의개발자
2009. 4. 24. 15:39
* 본 포스트는 파이썬 마을 게시판의 June 님이 쓴 글을 인용했습니다.
일반적으로 file의 내용을 읽어 들어올 때 많은 이들이 어러한 방식을 사용한다.
file = open("sample.txt")
while 1:
line = file.readline()
if not line:
break
do_something(with_something)
file.close() |
이렇게 사용할 것이다.
하지만, 이렇게 사용할 경우, 한 줄 씩 읽어 오기 때문에 느릴 경우가 있고,
readlines를 이용해서 통째로 읽어오는 경우도 있지만, 크기가 수 백메가 이상되는 파일을 읽기에는 메모리 상 문제점이 발생 할 수 도 있다.
이것을 해결할 방법으로 널리 사용되는 버퍼를 이용한 방법인데, 이는 간단하다.
while 1:
lines = file.readlines(100000) #메모리가 허용하는 적당한 양
if not lines:
break
for line in lines:
do_something(with_something) |
수행 하는 부분을 이러한 형식으로 변경하면, 3~5배 정도 속도 향상이 온다고 한다.
많은 용량의 파일을 불러올 때 사용하는 것도 나쁘지 않다.