如何在不同的行集之间插入新行?

时间:2017-01-10 10:45:09

标签: python newline

我有一组不同的行,如下所示:

L341IQ345S.W99990001;O4;77;1;3.7;2.9;4.3;-6.5;1;0
L341IQ345S.W99990001;O4;77;9;3.7;2.8;3.9;-5.8;1;0
L341IQ345S.W99990001;O4;77;16;3.4;2.8;3.7;-5.5;1;0
L341IQ345S.W99990002;O4;74;1;3.5;2.9;4.1;-6.3;1;0
L341IQ345S.W99990002;O4;74;8;3.7;3.3;2.7;-5.7;1;0
L341IQ345S.W99990003;O2;85;4;3.6;3.0;3.2;-5.7;0;1
L341IQ345S.W99990003;O2;85;6;3.6;3.5;3.0;-5.6;0;1
L341IQ345S.W99990003;O4;85;9;3.4;2.8;3.2;-5.4;1;0
L341IQ345S.W99990003;O4;85;10;3.4;2.7;3.9;-5.4;1;0
L341IQ345S.W99990004;O2;83;5;3.6;3.5;2.7;-5.1;0;1
L341IQ345S.W99990004;O4;83;22;3.1;2.3;3.2;-4.7;1;0

我想在每组新行之前插入一个换行符,如下所示:

L341IQ345S.W99990001;O4;77;1;3.7;2.9;4.3;-6.5;1;0
L341IQ345S.W99990001;O4;77;9;3.7;2.8;3.9;-5.8;1;0
L341IQ345S.W99990001;O4;77;16;3.4;2.8;3.7;-5.5;1;0

L341IQ345S.W99990002;O4;74;1;3.5;2.9;4.1;-6.3;1;0
L341IQ345S.W99990002;O4;74;8;3.7;3.3;2.7;-5.7;1;0

L341IQ345S.W99990003;O2;85;4;3.6;3.0;3.2;-5.7;0;1
L341IQ345S.W99990003;O2;85;6;3.6;3.5;3.0;-5.6;0;1
L341IQ345S.W99990003;O4;85;9;3.4;2.8;3.2;-5.4;1;0
L341IQ345S.W99990003;O4;85;10;3.4;2.7;3.9;-5.4;1;0

L341IQ345S.W99990004;O2;83;5;3.6;3.5;2.7;-5.1;0;1
L341IQ345S.W99990004;O4;83;22;3.1;2.3;3.2;-4.7;1;0

提前感谢你

2 个答案:

答案 0 :(得分:2)

分割线条,遍历每一行,标识应分组的文本,如果按文字分组更改,则添加新行:

text = "L341IQ345S.W99990001;O4;77;1;3.7;2.9;4.3;-6.5;1;0\n"+"L341IQ345S.W99990001;O4;77;9;3.7;2.8;3.9;-5.8;1;0\n"+"L341IQ345S.W99990001;O4;77;16;3.4;2.8;3.7;-5.5;1;0\n"+"L341IQ345S.W99990002;O4;74;1;3.5;2.9;4.1;-6.3;1;0\n"+"L341IQ345S.W99990002;O4;74;8;3.7;3.3;2.7;-5.7;1;0\n"+"L341IQ345S.W99990003;O2;85;4;3.6;3.0;3.2;-5.7;0;1\n"+"L341IQ345S.W99990003;O2;85;6;3.6;3.5;3.0;-5.6;0;1\n"+"L341IQ345S.W99990003;O4;85;9;3.4;2.8;3.2;-5.4;1;0\n"+"L341IQ345S.W99990003;O4;85;10;3.4;2.7;3.9;-5.4;1;0\n"+"L341IQ345S.W99990004;O2;83;5;3.6;3.5;2.7;-5.1;0;1\n"+"L341IQ345S.W99990004;O4;83;22;3.1;2.3;3.2;-4.7;1;0\n"

print(text)

iter = text.splitlines(False)
lastid = ""
for line in iter:
    id = line[line.find('.')+1:line.find(';')]
    if id != "" and lastid != id:
      print("")
    print(line)
    lastid = id

答案 1 :(得分:1)

您至少应该上传一些您编写的代码,或者更具体地说明您想要的代码。从我可以告诉你似乎想要根据第二个帖子(。和第一个之间的部分;)分开它,所以我将保存该部分,然后将它与下一行进行比较。如果该行不匹配,只需附加换行符' \ n'到字符串,获取新行的新部分,然后重复。