Bonsoir, Je teste actuellement le script Python bulk_upload.py pour l'import Corine Land Cover. Je l'ai légèrement modifié pour qu'il ajoute les éléments dans l'ordre de lecture du parser et pas dans l'ordre des types d'éléments comme le fait le script original (tous les nodes puis ways puis relations):
Le script se trouve ici: http://svn.openstreetmap.org/applications/utils/import/bulk_upload_06/ Malheureusement, j'ai l'impression que ma version tente de charger le document en entier en mémoire pour le parsing XML, ce qui n'est pas souhaité en particulier lorsque ce document fait 1.4 GB. J'aimerais savoir si quelqu'un qui connait mieux Python que moi pourrait me donner un coup de main sur ce coup-là. L'idée serait bien-sûr de parser le document XML sans avoir à tout charger en mémoire. Pieren PS: le document XML utilisé pour les tests contient des erreurs mais le parser ne soulève aucun message d'erreur mais semble consommer une quantité mémoire anormale. J'en conclu que c'est un problème de méthode et non un bug du parser. Le parser du script original est : xml.etree.cElementTree et le parser est appelé ainsi: osmData=ET.parse(options.infile) //options.infile =fichier xml puis le script original fait une boucle comme suit: for type in ('node','way','relation'): for elem in osmData.getiterator(type): : que j'ai modifié en: for elem in osmData.getiterator(): if elem.tag=='node' or elem.tag=='way' or elem.tag=='relation': : Est-ce correct? Est-ce que le parser xml.etree.cElementTree charge tout le document en mémoire ? Peut-on faire autrement ? _______________________________________________ Talk-fr mailing list [email protected] http://lists.openstreetmap.org/listinfo/talk-fr

