Analizar datos de línea hasta palabra clave con pyparsing
Estoy tratando de analizar datos de línea y luego agruparlos en la lista.
Aquí está mi guión:
from pyparsing import *
data = """START
line 2
line 3
line 4
END
START
line a
line b
line c
END
"""
EOL = LineEnd().suppress()
start = Keyword('START').suppress() + EOL
end = Keyword('END').suppress() + EOL
line = SkipTo(LineEnd()) + EOL
lines = start + OneOrMore(start | end | Group(line))
start.setDebug()
end.setDebug()
line.setDebug()
result = lines.parseString(data)
results_list = result.asList()
print(results_list)
Este código fue inspirado por otra pregunta de stackoverflow:Emparejar líneas no vacías con pyparsing
Lo que necesito es analizar todo, desde INICIO hasta FINAL línea por línea y guardarlo en una lista por grupo (todo, desde INICIO hasta FINAL coincidente es un grupo). Sin embargo, este script coloca cada línea en un nuevo grupo.
Este es el resultado:
[['line 2'], ['line 3'], ['line 4'], ['line a'], ['line b'], ['line c'], ['']]
Y quiero que sea:
[['line 2', 'line 3', 'line 4'], ['line a', 'line b', 'line c']]
También analiza una cadena vacía al final.
Soy un principiante de pyparsing, así que te pido tu ayuda.
Gracias