代码之家  ›  专栏  ›  技术社区  ›  yavg

在加载的csv的n位置添加一行

  •  0
  • yavg  · 技术社区  · 7 年前

    我还没有做到这一点。但最让我困惑的是如何在csv的“n”行中添加元素,例如,我想在csv的第2行中添加一行。

    mycsv.csv
    
    name,last name
    yeison, smith
    lola, boa
    elmo, spitia
    anderson, exneider
    juan, ortega
    

    这是我的代码:

    with open('mycsv.csv', 'w') as f:
     #I need add "barney, cubides" on position [2] of my csv
     f.write("barney, cubides") #not works properly..
    

    怎么能做到呢?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ignatius    7 年前

    您必须在读取文件后将其写入。因此,请阅读整个csv并将每一行保存为列表,在需要的地方插入新行,然后重新写入整个文件。

    index_to_insert = 2
    new_csv = []
    new_line = "barney, cubides\n"
    with open("mycsv.csv", "r") as f:
        new_csv = f.readlines()
    new_csv.insert(index_to_insert, new_line)
    with open("mycsv.csv", "w") as f:
        for line in new_csv:
            f.write(line)
    

    另外,您可能希望去掉csv文件中逗号前后的空格。