J'ai deux gros fichiers texte, près de 2 Go chacun. J'ai besoin de quelque chose comme diff f1.txt f2.txt
. Est-il possible de faire cette tâche rapidement en python? La norme difflib
est trop lente. Je suppose qu'il y a un moyen plus rapide, car difflib
est entièrement implémenté en Python.diff deux gros fichiers en Python
Répondre
Que diriez-vous d'utiliser difflib de façon à ce que votre script puisse gérer de gros fichiers? Ne chargez pas les fichiers en mémoire, mais parcourez les fichiers des fichiers et diff en morceaux. Pour par exemple 100 lignes à la fois.
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()
oui, j'essayais un script similaire. Trop lent :( –
Votre autre option rapide et portable serait de demander aux utilisateurs d'installer l'utilitaire diff pour la plate-forme, puis l'utiliser via l'habillage python –
'difflib' de Python est juste lent, peu importe ce que vous faites. 1 Mo chacun, prenez-moi 0.5sec au meilleur des cas et quelques minutes au pire des cas.Binaire diff prend 0.033s. – Pithikos
- 1. diff deux fichiers XML
- 2. python obtenir diff de fichiers
- 3. Patch deux fichiers avec un diff
- 4. Diff. Structurelle de deux fichiers source java
- 5. diff git entre deux fichiers différents
- 6. Traitement et combinaison de deux gros fichiers
- 7. Python comparant deux fichiers partiellement
- 8. Diff et l'intersection des rapports entre les deux fichiers texte
- 9. diff de deux fichiers à partir de deux répertoires différents
- 10. Comment diff 2 un très gros tableaux?
- 11. Analyse de gros fichiers pseudo-xml en python
- 12. Comment utiliser git diff seulement diff fichiers.
- 13. Télécharger en gros fichiers android
- 14. Création de patchs Delta Diff de gros fichiers binaires en C#
- 15. Diff fichiers MIDI
- 16. Itérer sur deux fichiers texte en python
- 17. Comparer deux fichiers xml en python
- 18. DUnit Comparer deux fichiers texte et montrer Diff
- 19. Diff deux onglets dans Vim
- 20. git diff: Afficher uniquement diff pour les fichiers qui existent dans les deux valid
- 21. git diff deux fichiers sur une même branche, même commettre
- 22. Impossible de diff fichiers dans deux branches distinctes dans Git
- 23. Diff sortie de deux programmes sans fichiers temporaires
- 24. prenant diff entre deux fichiers nommés dans vim
- 25. Comment comparer efficacement deux gros fichiers XML élément par élément?
- 26. sur zipper gros fichiers
- 27. meilleure façon d'analyser de gros fichiers par regex python
- 28. Comment rechercher la différence entre deux gros fichiers dans tcl?
- 29. Diff sans fichiers
- 30. Publication de gros fichiers
Pourquoi ne pas utiliser 'diff f1.txt f2.txt'? – delnan
@delnan: parce que cela rendra ma plateforme de script dépendante. Obtenir diff de fichiers est seulement l'une des autres parties du script –
Est-il faisable de l'essayer avec l'accélération de psyco ou une construction de Swallow à vide ou de PyPy? – ncoghlan