[python] 파이썬 파일 I/O의 성능 향상 기법
소개
파이썬은 강력한 파일 입출력 기능을 제공하여 데이터를 읽고 쓸 수 있습니다. 하지만 대용량 파일을 다룰 때 성능이 저하될 수 있습니다. 이러한 상황에서 파일 I/O의 성능을 향상시키는 몇 가지 기법을 알아보겠습니다.
1. 버퍼링
파이썬의 입출력은 기본적으로 버퍼링되어 있습니다. 하지만 때때로 버퍼 크기를 증가시켜 파일 I/O의 성능을 향상시킬 수 있습니다. open
함수를 사용할 때 buffering
인자를 조절하여 적절한 버퍼 크기를 설정할 수 있습니다.
file = open("example.txt", "r", buffering=1024000) # 1MB 버퍼 사용
2. 바이너리 모드
텍스트 모드보다 바이너리 모드를 사용하는 것이 더 빠를 수 있습니다. 특히 대용량 파일을 다룰 때 이점이 있습니다. 따라서 텍스트가 아닌 데이터를 다룰 때는 바이너리 모드를 고려해보세요.
file = open("data.bin", "rb") # 읽기용으로 바이너리 모드로 파일 열기
3. 메모리 매핑
매핑 파일 I/O를 사용하면 파일을 메모리에 매핑하여 읽거나 쓸 수 있습니다. 이를 통해 파일의 내용을 직접 읽고 쓸 수 있으며 파일을 읽을 때 발생하는 오버헤드를 줄일 수 있습니다.
import mmap
file = open("example.txt", "r")
mmapped_file = mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ)
data = mmapped_file.read(100) # 처음 100바이트 읽기
mmapped_file.close()
file.close()
결론
파이썬 파일 I/O의 성능을 향상시키는 다양한 기법들을 활용하면 대용량 파일을 다룰 때 발생하는 성능 문제를 해결할 수 있습니다. 앞으로 파일 I/O를 다뤄야 할 때 이러한 기법들을 고려해보세요.
해당 내용은 파이썬 공식 문서 및 Real Python을 참고하여 작성되었습니다.