ejemplo de reproducción

Es mi primer bash de usar pyparsing y me gustaría preguntar cómo filtrar esta línea de muestra:

survey = '''GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812''' 

para obtener una salida como: 1,52.125133215643,21.031048525561,116.898812

En general, tengo problemas para entender la lógica de progtwigción, por lo que se agradecerá cualquier ayuda con este ejemplo. Gracias

Podrías comenzar con algo como esto:

 from pyparsing import * survey = '''GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812''' number = Word(nums+'.').setParseAction(lambda t: float(t[0])) separator = Suppress(',') latitude = Suppress('LA') + number longitude = Suppress('LN') + number elevation = Suppress('EL') + number line = (Suppress('GPS,PN1,') + latitude + separator + longitude + separator + elevation) print line.parseString(survey) 

La salida del script es:

 [52.125133215643, 21.031048525561, 116.898812] 

Edición: es posible que también desee considerar lepl , que es una biblioteca similar que está bastante bien documentada. El guión equivalente al anterior es:

 from lepl import * survey = '''GPS,PN1,LA52.125133215643,LN21.031048525561,EL116.898812''' number = Real() >> float with Separator(~Literal(',')): latitude = ~Literal('LA') + number longitude = ~Literal('LN') + number elevation = ~Literal('EL') + number line = (~Literal('GPS') & ~Literal('PN1') & latitude & longitude & elevation) print line.parse(survey)