두 개의 큰 (~ 100 GB) 텍스트 파일이 동시에 반복되어야합니다.두 개의 반복 가능을 반복하는 zip() 대안
우편 번호는 작은 파일 잘 작동하지만 실제로 내 두 파일에서 라인의 목록을 만들고 있다는 것을 발견했다. 이것은 모든 라인이 메모리에 저장된다는 것을 의미합니다. 줄을 여러 번 쓸 필요가 없습니다.
handle1 = open('filea', 'r'); handle2 = open('fileb', 'r')
for i, j in zip(handle1, handle2):
do something with i and j.
write to an output file.
no need to do anything with i and j after this.
나 램의> 사용하지 않고이 두 파일을 통해 2백기가바이트을 반복 할 수는 발전기 역할을 우편()에 대한 대안이 있는가?
... 사실, 나는 한 가지 방법을 알고 있지만 매우 pythonic하지 않습니다 .- line1 : line1 = handle1.readline(); line2 = handle2.readline(); 당신이 찾을 수있는 1 호선과 2 호선 뭔가 ... 메모리 제약 환경의 –
말하기를 않는이 흥미 http://neopythonic.blogspot.com/2008/10/sorting-million-32-bit-integers-in-2mb.html –