Python 2.7 - 以CSV格式编辑特定行,列

时间:2016-10-24 18:19:03

标签: python csv

我有一堆包含大量数据的CSV,我需要更改特定行和列中的数据。我能够通读文件,查找需要更改的行,列,更改数据,但我无法弄清楚如何将更改提交到内存并正确重写CSV

以下代码不会失败,但不正确。它不是提交我对列(col)所做的更改,而是复制我想要更改的行。数据没有变化,现在我只有重复的行,我想要更改。

Map1-Reduce1 -> Map2-Reduce2 -> ... -> MapN-ReduceN

这是需要更改的一位数据的示例:

连接:D14Conn 类型:B2B 尺寸:140 几何:正方形 面积:19600

我上面的代码只是将新行复制到此数据中,而我对col所做的更改未提交 - 如下所示

连接:D14Conn 类型:B2B 尺寸:140 尺寸:140 几何:正方形 面积:19600 面积:19600

2 个答案:

答案 0 :(得分:1)

当您分配到col时,您将分配行中col值的副本。在遍历row时,您需要继续引用要更改的值的索引,并在该索引处更新row,以便在调用writer.writerow(row)时实际上是使用更改的对象进行书写,或使用所需的列创建new_row。 对于您的重复项,从if块中删除writer.writerow(row)次调用,它们是多余的。

答案 1 :(得分:0)

您的row未被更改。您需要使用新的列值制作new_row并执行writer.writerow(new_row)