首页 > 解决方案 > 如果python中的某些条件,将字符串附加到上一行

问题描述

我有单列的 csv 文件,在某些情况下,最后一个值会获得更多空间并创建新行,在这里我需要找出并将其附加到上一行

例如:excel文件

我的python代码:

with open("01.csv", 'r+') as file:
    text = str()
    for line in file:
        if line[0:3] == "2021":
           text = "{} {}".format(text, line.strip())
        else:
             text = "{}\n{}".format(text, line.strip())
            
    file.seek(0)
    file.write(text[1:])

如何删除 || 这在最后,并在所有出现的情况下都附加下一行。

在此处输入图像描述

第 10 行要附加到第 9 行,第 21 行要附加到第 20 行,依此类推。

标签: python

解决方案


如果您还没有看到它,则不能“附加下​​一行”。您的解决方案必须知道所有附加都已完成,然后才能对一行进行操作,这意味着您需要缓冲下一行。

我认为您正在尝试随时重新组合整个文件text,这不是文件处理的好模型。而且,如果您的测试有效,则操作实际上是错误的方式-您希望在“20”开始行时包含换行符。我建议您改为写入另一个新文件或简单地立即纠正问题,如下所示。

with open("01.csv", 'r+') as file:
    complete_line = None
    for line in file:
        if complete_line is None:
           initial_action()
           complete_line = line
        elif line[0:2] == "20": # compatible with next 79 years
           act_on(complete_line)
           complete_line = line
        else:
           complete_line += line

    act_on(complete_line)        

whereintial_actionact_onare 功能供您实现。


推荐阅读