我想知道是否有办法使用python将数据插入到csv文件的特定单元格中。假设我有变量'data'并且它存储值“300”。如何将该数据添加到csv文件中的第3行第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"。
删除和插入一直是我可靠的列表替换方法。