如何将多行解析为元组

时间:2019-10-21 02:44:44

标签: python

我的文件格式为:

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中有效解析此文件的任何帮助。

1 个答案:

答案 0 :(得分: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}']