Ben ancak bazen piton bir seferde 2 hatlarında okuyup sıralamak olacak, bir 20Gb dosyasını ayrıştırma ve başka bir dosyaya belirli bir koşulu karşılayan hattının çıkışını ediyorum olarak 2 hatlarında okuma onlar.Ayrıştırma büyük (20GB) metin dosyası - 1
inputFileHandle = open(inputFileName, 'r')
row = 0
for line in inputFileHandle:
row = row + 1
if line_meets_condition:
outputFileHandle.write(line)
else:
lstIgnoredRows.append(row)
Ben kaynak dosyada satır sonlarını kontrol ettim ve hat (ASCII char, 10) besleyen onlar kontrol edin. Problem satırlarını dışarıya çekerek ve izolasyon çalışmalarını beklendiği gibi ayrıştırmak. Burada bir python sınırlaması var mı? İlk anomali dosyasındaki pozisyon 4GB işareti civarındadır.
yumruk anomali hep saymak aynı çizgide tutarlı meydana gelir? Ayrıca, lstIgnoredRows bir liste, ne kadar büyüyor? Çıktı dosyasına ilgi duyduğunuz satırları kurtardıysanız ve göz ardı etmek istediğiniz satırlarla hiçbir şey yapmadıysanız ne olacağını merak ediyorum. – Levon
Belki de bu soruya benzer, tembel bir yöntem kullanarak dosyanın daha küçük parçalarını okumayı deneyebilirsiniz? Bir atış verin http://stackoverflow.com/questions/519633/lazy-method-for-reading-big-file-in-python – prrao
Her seferinde aynı satırda olur. lstIgnoredRows birkaç bin ürüne kadar büyüyebilir. – James