【问题标题】:Update existing columns and rows within csv file using Python使用 Python 更新 csv 文件中的现有列和行
【发布时间】:2012-04-15 05:21:51
【问题描述】:

所以我一直在尝试使用 Python 中的 csv 模块将数据添加到现有的行和列,但只添加每行的特定列。因此,例如,假设我现有的 csv 文件具有以下内容:

id, name, city, age
1, Ed,, 34
2, Pat,, 23

所以基本上每个人的城市都丢失了,所以我想用那个人的城市更新每一行。但是, writerow 方法似乎只替换了 csv 文件中的现有数据。将打开的文件更改为附加模式只会将数据添加到新行。有没有办法跳过现有数据,只将城市添加到每一行?

谢谢

【问题讨论】:

    标签: python csv


    【解决方案1】:

    这是一篇关于另一位开发人员尝试做类似事情的帖子 - 更新 csv 文件中的特定记录 - http://www.dreamincode.net/forums/topic/196479-editing-a-csv-file/

    他帖子中的代码 sn-p 演示了他如何在 csv 文件中搜索特定的“位置”(单元格)(如 excel 中的特定单元格)并使用新信息更新该单元格。在您的案例中,特定用户的城市。

    所以模仿他的示例代码,你可以达到你想要的结果。

    但是,如果您发现自己一直在这样做——“更新 csv 文件中的单元格”,您最好使用数据库来存储信息。通过从初始 csv 导入初始数据集以及通过对您选择的数据库的更新调用完成的任何进一步更新。使用提供 orm 的库来与您的数据库进行交互。 :-)

    即使是 sqlite3 也会比尝试更新 csv 文件中的特定单元格更好。

    【讨论】:

    • 感谢您的回答。因此,从代码的外观来看,它实际上并没有更新每一行,而是替换它或覆盖它。但也许这是唯一的方法。只是看起来很简单,但我猜 csv 模块没有这个能力?
    • 据我所知,在几个项目中使用 csv 模块,没有使用 python csv 模块“更新”csv 行中的单元格的概念。
    猜你喜欢
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2020-11-25
    • 2023-03-31
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多