Bonsoir, je suis débutant en python je cherche à faire un programme pour manipuler les fichiers de type gpx (gps). Pour l'instant le programme sait compter le nombre de points d'un fichier ainsi que le nombre de lignes d'un fichier.
Voilà à quoi ressemble une ligne d'un fichier gpx:
<![CDATA[TIME: 19-MAR-09 16:46:52RCR: B <b>(ButtonStamp)</b>VALID: SPSLATITUDE: 46.607128 NLONGITUDE: 6.584025 ESPEED: 16.528 km/h]]>
Il y a d'autres lignes entre ces lignes "utiles" mais j'utilise la fonction suivante pour extraire uniquement les lignes "utiles" qui contiennent le mot SPEED:
fichier = open('test.gpx')
for ligne in fichier:
if "SPEED" in ligne:
print ligne
fichier.close()
Au final je veux pouvoir récupérer la valeur en km/h qui est juste après le texte "SPEED", j'ai fait des tests avec le module "re.split" mais je n'arrive à rien. Si quelqu'un a une piste... :]
# oups
Posté par xenon_hs (site web personnel) . Évalué à 1.
<cmt><![CDATA[TIME: 19-MAR-09 16:46:52<br>RCR: B <b>(ButtonStamp)</b><br>VALID: SPS<br>LATITUDE: 46.607128 N<br>LONGITUDE: 6.584025 E<br>SPEED: 16.528 km/h]]></cmt>
[^] # Re: oups
Posté par Jean B . Évalué à 4.
units, decimals = re.match(r'.*SPEED: (\d+)\.(\d+).*', text).groups()
speed = float("%s.%s" % (units, decimals))
Par contre un petit test sur le retour de match avant d'appeler groups ne ferait pas de mal.
[^] # Re: oups
Posté par norbs . Évalué à 1.
for line in file("test.gpx","r"):
print re.search(".*SPEED: ([^ ]*) km/h.*",line).groups()[0]
[^] # Re: oups
Posté par xenon_hs (site web personnel) . Évalué à 1.
# un module ?
Posté par solsTiCe (site web personnel) . Évalué à 2.
doit y avoir un module pour parser ces fichiers
http://pypi.python.org/pypi?%3Aaction=search&term=gps&am(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.