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 중국어 웹사이트의 기타 관련 기사를 참조하세요!