write una txt texto partir lista linea leer importar guardar funcion especifica crear como archivos archivo python parsing tags markup

txt - guardar una lista en un archivo python



Analizar un archivo de texto con un marcado especial (2)

"algún motor que permite crear un árbol basándose en la estructura de etiquetas de anidación".

Mira http://www.dabeaz.com/ply/

Es posible que pueda definir la sintaxis rápida y fácilmente como un conjunto de reglas léxicas y algunas producciones gramaticales.

Si no te gusta, aquí hay una lista de alternativas.

http://wiki.python.org/moin/LanguageParsing

Necesito analizar un archivo DSL usando Python. Un archivo DSL es un archivo de texto con un texto que tiene un marcado especial con etiquetas utilizadas por ABBYY Lingvo .

Parece que:

activate [m0][b]ac·ti·vate[/b] {{id=000000367}} [c rosybrown]/[[/c][c darkslategray][b]activate[/b][/c] [c darkslategray][b]activates[/b][/c] [c darkslategray][b]activated[/b][/c] [c darkslategray][b]activating[/b][/c][c rosybrown]/][/c] [p]BrE[/p] [c darkgray] [/c][c darkcyan]/[ˈæktɪveɪt/][/c] [s]z_activate__gb_1.wav[/s] [p]NAmE[/p] [c darkgray] [/c][c darkcyan]/[ˈæktɪveɪt/][/c] [s]z_activate__us_1.wav[/s] [c orange] verb[/c] [c darkgray] [/c][b]{{cf}}/~ sth{{/cf}} [/b] [m1]{{d}}to make sth such as a device or chemical process start working{{/d}} [m2][ex][*]• [/*][/ex][ex][*]{{x}}The burglar alarm is activated by movement.{{/x}} [/*][/ex] [m2][ex][*]• [/*][/ex][c darkgray] [/c][ex][*]{{x}}The gene is activated by a specific protein.{{/x}} [/*][/ex] {{Derived Word}}[m3][c darkslategray][u]Derived Word:[/u][/c] ↑<<activation>>{{/Derived Word}} {{side_verb_forms}}[m3][c darkslategray][u]Verb forms:[/u][/c] [s]x_verb_forms_activate.jpg[/s]{{/side_verb_forms}}

Ahora veo la única opción para analizar este archivo usando regexps . Pero dudo si se puede lograr ya que las etiquetas en ese formato tienen cierta jerarquía, donde algunas de ellas están dentro de otras.

No puedo usar analizadores especiales xml y html . Son perfectos para crear una estructura de árbol del documento, pero están diseñados para etiquetas especiales de html y xml .

¿Cuál es la mejor manera de analizar un archivo en ese formato? ¿Hay alguna biblioteca de Python para ese propósito?


Usar RegExp para esto por algo que no sea un uso trivial le dará angustia y dolor.

Si insistes en usar un RegEx (NO RECOMENDADO), mira los métodos usados AQUÍ en XML

Si con ".dsl" te refieres al formato ABBRY o Lingvo dict, puedes mirar stardict. Puede leer el formato ABBRY dsl.