[파이썬][Numpy] 메모리 맵 파일을 활용하는 방법

메모리 맵 파일(Memory-Mapped File)은 디스크에 저장된 큰 파일을 메모리에 매핑하여 파일 내용을 읽고 쓸 수 있게 해주는 효율적인 방법입니다. 이를 통해 파일을 메모리에 로드하거나 파일에서 데이터를 읽어오는 작업을 최적화할 수 있습니다. 아래는 메모리 맵 파일을 활용하는 방법에 대한 간단한 예제입니다.

주의: 메모리 맵 파일은 파일의 크기가 큰 경우에 유용합니다. 작은 파일의 경우에는 메모리에 로드하는 것이 더 효율적일 수 있습니다.

import mmap

# 메모리 맵 파일 생성 및 데이터 쓰기
with open('mmap_example.txt', 'wb') as file:
    file.write(b'This is an example of memory-mapped file.')

# 메모리 맵 파일 열기 (읽기 모드)
with open('mmap_example.txt', 'r') as file:
    mmapped_file = mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ)

    # 메모리 맵 파일에서 데이터 읽기
    data = mmapped_file.read()
    print(data)

    # 메모리 맵 파일에서 특정 위치의 데이터 읽기
    mmapped_file.seek(5)  # 5번째 바이트로 이동
    data = mmapped_file.read(10)  # 10바이트 읽기
    print(data)

# 메모리 맵 파일 자동으로 닫힘

위의 코드에서 mmap() 함수를 사용하여 메모리 맵 파일을 열고, read()seek()를 사용하여 데이터를 읽거나 특정 위치로 이동할 수 있습니다. 메모리 맵 파일은 파일 시스템과 상호 작용하는 데 사용될 수 있으며, 파일 내용을 메모리에 매핑하므로 데이터를 효율적으로 읽고 쓸 수 있습니다.