【问题标题】:How to insert a new line between different set of lines?如何在不同的行之间插入新行?
【发布时间】:2017-01-10 10:45:08
【问题描述】:

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

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

提前谢谢你

【问题讨论】:

  • 对不起,下次我会尝试把我的尝试
  • 这里没有“时间”。任何人都可以通过谷歌搜索来到这里。因此,您应该继续关注您过去帖子的质量。我邀请您编辑您的问题,以便对其他读者有所帮助。

标签: python newline


【解决方案1】:

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

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

【讨论】:

  • 非常感谢,下次我会尽力尝试
  • @Coder 应该使用不同的变量名。 iter 是一个内置函数名。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 2022-11-22
    • 1970-01-01
    相关资源
    最近更新 更多