'daki iki büyük dosyayı farklı 2 GB'ye yakın iki büyük metin dosyam var. diff f1.txt f2.txt
gibi bir şeye ihtiyacım var. Bu görevi python'da hızlı yapmanın bir yolu var mı? Standart difflib
çok yavaş. Daha hızlı bir yol olduğunu varsayalım, çünkü difflib
Python'da tam olarak uygulanmaktadır.Python
Python
cevap
Komut dosyası, büyük dosyaları işleyebileceğiniz şekilde nasıl kullanılır? Dosyaları belleğe yüklemeyin, ancak dosyaların dosyalarında yineleyin ve parçalara ayırın. Bir seferde 100 satır için.
import difflib
d = difflib.Differ()
f1 = open('bigfile1')
f2 = open('bigfile2')
b1 = []
b2 = []
for n, lines in enumerate(zip(f1,f2)):
if not (n % 100 == 0):
b1.append(lines[0])
b2.append(lines[1])
else:
diff = d.compare("".join(b1), "".join(b2))
b1 = []
b2 = []
print ''.join(list(diff))
diff = d.compare("".join(b1), "".join(b2))
print ''.join(list(diff))
f1.close()
f2.close()
evet, benzer senaryoyu deniyordum. Çok yavaş :( –
Diğer hızlı ve taşınabilir seçeneğiniz, kullanıcıların platform için farklı bir yardımcı program kurmasını ve ardından python sarıcı ile kullanmasını isteyecektir: –
Python'un "difflib" ne yaptığınız önemli değil, hemen hemen aynıdır. Her biri 1MB, en iyi durumda 0.5sec ve en kötü durumda birkaç dakika götürür. İkili fark 0,033s alır. – Pithikos
- 1. python deyim için python deyim python ifadesi
- 2. Python dosyası Python detay
- 3. gibi Python Python
- 4. python listesi python
- 5. Python
- 6. Python
- 7. Python
- 8. Python,
- 9. Python
- 10. Python
- 11. Python
- 12. Python
- 13. Python
- 14. Python
- 15. Python
- 16. Python
- 17. Python
- 18. Python
- 19. python
- 20. Python
- 21. Python
- 22. Python
- 23. Python
- 24. Python
- 25. Python
- 26. Python
- 27. Python
- 28. Python:
- 29. Python
- 30. Python
Neden 'diff f1.txt f2.txt' kullanılmıyor? – delnan
@delnan: çünkü senaryo platformuma bağımlı olacak. Dosyaların farklılığı, betiğin diğer bölümlerinden sadece bir tanesidir –
Psikolojik hızlandırma veya Unladen Swallow veya PyPy build ile denemek mümkün mü? – ncoghlan