【问题标题】:How to update a particular column of a row in a csv using python如何使用python更新csv中某一行的特定列
【发布时间】:2011-10-14 05:37:19
【问题描述】:

我有一个包含以下内容的 csv 文件

1,2,3,4
a,b,c,d
w,x,y,z

我想将此 csv 文件内容更新为

1,2,3,4
a,b,c,d,k
w,x,y,z

有人可以分享此更新过程的 Python 代码吗?

【问题讨论】:

    标签: python csv


    【解决方案1】:

    使用 csv 库,我们读入数据,将其转换为列表列表,将 k 附加到相关列表中,然后再次将其写出。

    import csv
    
    data = csv.reader(open("input.csv"))
    
    l = list(data)    
    l[1].append("k")
    
    our_writer = csv.writer(open("output.csv", "wb"))
    
    our_writer.writerows(l)
    

    虽然 csv 库对于您的玩具箱不是完全必要的,但使用可很好扩展的方法通常会很好。

    【讨论】:

    • 一般来说,您可能会发现with 语句有助于正确关闭文件。要就地更新文件,您可以写入临时文件并在成功时将其重命名。您应该对输出文件使用'wb' 模式。如果您将所有行加载到内存中,那么writer.writerows() 允许您一次写入所有行。
    • @J.F.Sebastian 谢谢!正式注明。
    【解决方案2】:

    这种简单的情况不需要csv

    # sed '2s/$/,k/'
    import fileinput
    for lineno, line in enumerate(fileinput.input(inplace=True), start=1):
        if lineno == 2:
           line = line.rstrip('\n') + ",k\n"
        print line,
    

    例子:

    $ python update_2nd_line.py data_to_update.csv
    

    它会就地更新data_to_update.csv 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      相关资源
      最近更新 更多