>백엔드 개발 >파이썬 튜토리얼 >Python에서 대용량 파일을 메모리에 완전히 로드하지 않고 효율적으로 처리하려면 어떻게 해야 합니까?

Python에서 대용량 파일을 메모리에 완전히 로드하지 않고 효율적으로 처리하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-16 19:33:14545검색

How Can I Efficiently Process Large Files in Python Without Loading Them Entirely into Memory?

Python에서 대용량 파일을 읽는 게으른 방법: 조각별 처리

Python에서 대용량 파일을 읽는 것은 어려울 수 있으며, 특히 컴퓨터 용량을 초과하는 경우 더욱 그렇습니다. 사용 가능한 메모리. 이 문제를 완화하기 위해 게으른 방법은 파일을 하나씩 읽고, 각 부분을 처리하고, 결과를 별도로 저장하는 방식으로 솔루션을 제공합니다.

방법 1: 수율 기반 생성기 사용

게으른 메서드를 만드는 한 가지 방법은 읽을 때 데이터 덩어리를 생성하는 생성기 함수를 사용하는 것입니다. 이를 통해 전체 파일을 메모리에 로드하지 않고도 파일을 반복할 수 있습니다.

def read_in_chunks(file_object, chunk_size=1024):
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data

사용법:

with open('really_big_file.dat') as f:
    for piece in read_in_chunks(f):
        process_data(piece)

방법 2: Iter 및 도우미 함수 사용

또 다른 옵션은 iter 함수와 도우미 함수를 사용하여 각각의 크기를 정의하는 것입니다. Chunk.

f = open('really_big_file.dat')
def read1k():
    return f.read(1024)

for piece in iter(read1k, ''):
    process_data(piece)

방법 3: 줄 기반 반복 사용

파일이 줄 기반인 경우 Python에 내장된 게으른 파일을 활용할 수 있습니다. 읽을 때 줄을 생성하는 개체입니다.

for line in open('really_big_file.dat'):
    process_data(line)

이러한 게으른 방법을 사용하면 대용량 파일을 효율적으로 처리할 수 있습니다. 한 번에 필요한 부분만 읽어 메모리 소모를 줄이고 시스템 정지를 방지합니다.

위 내용은 Python에서 대용량 파일을 메모리에 완전히 로드하지 않고 효율적으로 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.