如何将多行解析为元组

问题描述 投票:0回答:1

我的文件格式:

name : base : add : data1 : data2 : {desc}
name : base : add : data1 : data2 : {desc}
name : base : add : data1:  data2 : {desc
desc-continue}
name : base : add : data1:  data2 : {desc
desc-contiue
desc-continue}
...
name : base : add : data1 : data2 : {desc}

您可以看到desc以{}开头和结尾,但可以跨越多行。

因此,我不能使用reg = Register._match(line.split(r /:/)

关于如何在python中有效解析此文件的任何帮助。

python
1个回答
0
投票

}分割,然后稍后追加。

a = """name : base : add : data1 : data2 : {desc}
name : base : add : data1 : data2 : {desc}
name : base : add : data1:  data2 : {desc
desc-continue}
name : base : add : data1:  data2 : {desc
desc-contiue
desc-continue}"""
splited = [i+"}" for i in a.split("}") if i]

结果:

>>>splited
['name : base : add : data1 : data2 : {desc}', '\nname : base : add : data1 : data2 : {desc}', '\nname : base : add : data1:  data2 : {desc\ndesc-continue}', '\nname : base : add : data1:  data2 : {desc\ndesc-contiue\ndesc-continue}']

© www.soinside.com 2019 - 2024. All rights reserved.