Python文本到树结构的创建

Python文本到树结构的创建,python,parsing,Python,Parsing,我必须使用python执行文本解析,示例文本如下 04h; ParIsa.Front.Area[0].ub_Y (BYTE) 0Dh; ParIsa.Front.Area[0].ub_X (BYTE) 00h; ParIsa.Front.Area[0].ub_P1 (BYTE) 01h; ParIsa.Front.Area[0].ub_P2 (BYTE) 40h; ParIsa.Front.Area[1].ub_Y (BYTE) 0Eh; ParIsa.Front.Area[1].ub_X (B

我必须使用python执行文本解析,示例文本如下

04h; ParIsa.Front.Area[0].ub_Y (BYTE)
0Dh; ParIsa.Front.Area[0].ub_X (BYTE)
00h; ParIsa.Front.Area[0].ub_P1 (BYTE)
01h; ParIsa.Front.Area[0].ub_P2 (BYTE)
40h; ParIsa.Front.Area[1].ub_Y (BYTE)
0Eh; ParIsa.Front.Area[1].ub_X (BYTE)
00h; ParIsa.Front.Area[1].ub_P1 (BYTE)
01h; ParIsa.Front.Area[1].ub_P2 (BYTE)
03h; ParIsa.Side.Area[0].ub_Y (BYTE)
0Dh; ParIsa.Side.Area[0].ub_X (BYTE)
00h; ParIsa.Side.Area[0].ub_P1 (BYTE)
01h; ParIsa.Side.Area[0].ub_P2 (BYTE)
41h; ParIsa.Side.Area[1].ub_Y (BYTE)
15h; ParIsa.Side.Area[1].ub_X (BYTE)
00h; ParIsa.Side.Area[1].ub_P1 (BYTE)
01h; ParIsa.Side.Area[1].ub_P2 (BYTE)
有了这样一个文本,我需要创建一个数据结构,例如,我可以访问单个元素以及整个结构

>> Side.Area[0].ub_X
'0x0d'

>> Front.Area
Area[0]
    ub_X = 0x0d
    ub_Y = 0x04
    ub_P1 = 0x00
    ub_P2 = 0x01
Area[1]
    ub_X = 0x0e
    ub_Y = 0x40
    ub_P1 = 0x00
    ub_P2 = 0x01

访问整个结构是困难的部分,树的创建在这里有用吗?您是否有任何建议或想法来实现这一点,请让我知道

鉴于您的输入的同质性,正则表达式可能是这里的首选解决方案

import re
linere = re.compile(r"^(?P<value>[0-9a-fA-F]+)h; ParIsa\.(?P<name>[a-zA-Z.]+)\[(?P<index>\d+)\]\.(?P<attribute>[0-9a-zA-Z_]+) \(BYTE\)$")
重新导入
linere=re.compile(r“^(?P[0-9a-fA-F]+)h;ParIsa\(?P[a-zA-Z.]+)\[(?P\d+)\]\。(?P[0-9a-zA-Z\+)\(BYTE\)$)
然后,您可以将编译后的正则表达式应用于每一行,并通过名称访问匹配对象的
.groupdict()
结果中感兴趣的部分