首页 > 解决方案 > 如何将新列添加到包含特定值的行?

问题描述

我是 Python 编码的新手。我需要在包含特定单词的行中添加新列。我有 csv 文件如下:

one  two three four five 
two  one five three four 
five two four three five

我需要在第二列中包含“两个”的所有行中添加“2”。

像这样:

one  two three four five 2
two  one five three four
five two four three five 2

提前致谢

标签: pythoncsvparsing

解决方案


这是一个非常简单的解析,所以我不会打扰 csv 模块。只需打开文件并遍历每一行。在每一行上执行 a split,这会将行拆分为使用空格作为分隔符的列表(默认)。接下来的几行应该很明显:那些将“two”作为第二列(拆分列表中的第二项))的那些被补充,那些没有。

读取文件并修改行后,将其写入新文件。

newlines = []
with open("thecsv.txt") as f:
    for l in f:
        if l.split()[1] == "two":
            newlines.append(l.strip() + " 2\n")
        else:
            newlines.append(l)
with open("newcsv.txt", 'w') as f:
    for l in newlines:
        f.write(l)

推荐阅读