如何使用python在csv中覆盖一条具有相同主键的新行?

我的CSV是这样的。

Rollno     Name     score
  20      Akshay     33
  21      Sanjay     32

新增加的一行。

newrow=[21,'sanjay',33]

结果CSV是这样的:

Rollno      Name    score
  20       Akshay    33
  21       Sanjay    33

解决方案:

我不使用list,而是使用dict,就像这样。

d = {
  20: ["Ashay", 33],
  21: ["Sanjay", 32]
}

当更新时

d[21] = ["Sanjay", 33]

这正好可以满足你的需求。

如果你能选择如何将其保存到磁盘上,我会使用 pickle

import pickle

#loading
d = pickle.load(file("filename.pickle"))
#saving
pickle.dump(d,file("filename.pickle","w"))

如果你需要解析CSV文件(这里用分号作为分隔符,用Unix风格的换行符(\n)),可以这样做。

#loading
d = {}
for row in file("filename.csv").readlines():
 row=row.split(";")
 d[int(row[0])] = [row[1],int(row[2])]

#saving
l = []
for x in d:
 l.append(";".join(x,str(d[x][0]),str(d[x][1])))

file("filename.csv","w").write("\n".join(l))

给TA打赏
共{{data.count}}人
人已打赏
未分类

在java中处理文件错误转义字符

2022-9-9 5:41:19

未分类

如何在数据框中加入条件的group_by和一些变量。

2022-9-9 5:41:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索