> 백엔드 개발 > 파이썬 튜토리얼 > Python 2.7에서 대용량 CSV 파일을 어떻게 효율적으로 읽을 수 있습니까?

Python 2.7에서 대용량 CSV 파일을 어떻게 효율적으로 읽을 수 있습니까?

Barbara Streisand
풀어 주다: 2024-11-19 16:42:03
원래의
221명이 탐색했습니다.

How Can I Efficiently Read Large CSV Files in Python 2.7?

Python 2.7에서 대용량 CSV 파일 읽기

Python 2.7에서 대용량 CSV 파일을 읽는 문제를 해결하면 특히 파일의 경우 메모리 문제가 발생할 수 있습니다. 행이 300,000개를 초과합니다. 이 장애물을 극복하려면 전체 파일을 메모리로 읽지 않는 것이 중요합니다.

메모리 관리 기술

생성기를 사용하면 메모리 효율적인 처리가 가능합니다. 목록의 모든 행을 누적하는 대신 각 행을 개별적으로 생성합니다. getstuff 함수 생성기로 예시된 이 접근 방식은 메모리 소비를 크게 줄입니다.

또한 itertools 모듈의 dropwhile 및 takewhile 함수와 같은 최적화를 고려하세요. 이는 관련 없는 행을 건너뛰어 효율적인 필터링을 촉진하고 메모리를 더욱 절약합니다.

성능 최적화

메모리 관리를 넘어서 성능을 향상하려면 불필요한 작업을 최소화해야 합니다. getdata 함수는 getstuff 생성기를 직접 반복하여 불필요한 중간 목록을 제거해야 합니다.

사용 예

생성기를 사용하여 코드를 재작업하면 훨씬 더 효율적인 솔루션이 생성됩니다.

def getstuff(filename, criterion):
    ...  # Same generator code as above

def getdata(filename, criteria):
    ...  # Same generator code as above

# Process rows directly
for row in getdata(somefilename, sequence_of_criteria):
    ...  # Process the current row
로그인 후 복사

이 코드는 한 번에 한 행씩 효과적으로 처리하여 막대한 CSV의 경우에도 메모리 사용량을 크게 줄이고 성능을 향상시킵니다. 파일.

위 내용은 Python 2.7에서 대용량 CSV 파일을 어떻게 효율적으로 읽을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿