Eşzamanlı olarak yinelenmesi gereken iki büyük (~ 100 GB) metin dosyam var.İki yinelenen ile yineleme için zip() alternatifi
Zip, daha küçük dosyalar için iyi çalışıyor ancak aslında iki dosyadan bir satır listesi oluşturduğunu öğrendim. Bu, her satırın hafızada saklandığı anlamına gelir. Hatlarla bir kereden fazla bir şey yapmam gerekmiyor.
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.
bana ram> kullanmadan bu iki dosyalar arasında 200 GB yineleme sağlayacak bir jeneratör görevi gören zip() bir alternatif var mı?
... aslında, bir yol biliyorum ama çok pythonic görünmüyor - line1: line1 = handle1.readline(); line2 = handle2.readline(); line1 ve line2 ile bir şeyler yapın ... –
Hafıza kısıtlı ortamlardan bahsetmişken bu ilginç http://neopythonic.blogspot.com/2008/10/sorting-million-32-bit-integers-in-2mb.html –