티스토리 뷰

* 본 포스트는 파이썬 마을 게시판의 June 님이 쓴 글을 인용했습니다.

일반적으로 file의 내용을 읽어 들어올 때 많은 이들이 어러한 방식을 사용한다.

1
2
3
4
5
6
7
8
9
file = open("sample.txt") 

while 1: 
	line = file.readline() 
	if not line: 
		break 
	do_something(with_something) 

file.close() 

이렇게 사용할 것이다.
하지만, 이렇게 사용할 경우, 한 줄 씩 읽어 오기 때문에 느릴 경우가 있고,
readlines를 이용해서 통째로 읽어오는 경우도 있지만, 크기가 수 백메가 이상되는 파일을 읽기에는 메모리 상 문제점이 발생 할 수 도 있다.

이것을 해결할 방법으로 널리 사용되는 버퍼를 이용한 방법인데, 이는 간단하다.

1
2
3
4
5
6
while 1: 
	lines = file.readlines(100000) #메모리가 허용하는 적당한 양 
	if not lines: 
		break 
	for line in lines: 
		do_something(with_something)

수행 하는 부분을 이러한 형식으로 변경하면, 3~5배 정도 속도 향상이 온다고 한다.
많은 용량의 파일을 불러올 때 사용하는 것도 나쁘지 않다.
댓글
댓글쓰기 폼