使用python将值插入到csv中的特定单元格中

时间:2014-10-10 15:46:28

标签: python csv

我想知道是否有办法使用python将数据插入到csv文件的特定单元格中。假设我有变量'data'并且它存储值“300”。如何将该数据添加到csv文件中的第3行第2列?提前感谢您的所有帮助,我感谢您的任何建议。

2 个答案:

答案 0 :(得分:3)

假设我有以下列表清单:

>>> data=[[1,2,3],
...       [4,5,6],
...       [7,8,9]]

您可以使用data[row][col]更改任何项目,如下所示:

>>> data[1][0]="new value!"
>>> data
[[1, 2, 3], ['new value!', 5, 6], [7, 8, 9]]

当你编写一个csv文件时,你通常会编写一个看起来像列表列表或列表字典的数据结构。在使用csv写入数据之前,只需在dict的情况下更改row,col(在列表列表的情况下)或header,value的值。

考虑到这个csv文本文件:

$ cat /tmp/f.csv
1,2,3
4,5,6
7,8,9

您可以打开该文件并阅读:

>>> with open('/tmp/f.csv') as f:
...        data=[row for row in csv.reader(f)] 

>>> data
[['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']]

现在修改:

with open('/tmp/f.csv', 'w') as f:
    w=csv.writer(f)
    data[1][0]="New Value!"
    for row in data:
        w.writerow(row)

然后看到它已经改变了:

$ cat /tmp/f.csv
1,2,3
New Value!,5,6
7,8,9

答案 1 :(得分:0)

在您的示例中,我们有一个列表对象,它是嵌套列表。

要在NestedList中访问要替换的项目,请指定x,y值:

    nested_list [ x ] [ y ] 

或在您的示例中......

    nested_list [ 3 ] [ 2 ] 

现在我们知道如何访问我们要替换的值,我们只需删除第2列的该项,然后在第2列插入新项,如下所示:

    del nested_list [ 3 ] [ 2 ]   # Delete the Old Item
    nested_list [ 3 ].insert ( 2 , "New Item Value" )

我更喜欢上述方法而不是单线...

    nested_list [ 3 ] [ 2 ] = "New Item Value"

因为我经常遇到python列表的不变性问题,其中值实际上并没有改变为" New Item Value"。

删除和插入一直是我可靠的列表替换方法。