开发者社区> 问答> 正文

将行的副本保存在csv文件中

我正在读取CSV文件。当我遍历行时​​,如果数据格式无效,我将更改一些数据。我想报告哪些行已更改。与其检查每个项目,不如在需要时进行更改,然后将第一行与最后一行进行比较,以查看是否进行了更改,这样会更快。

for row in csv_reader:
    tempROW = row
    # make changes to row e.g.
    row["Surname"] = row["Surname"].title()
    # lots more ...  
    if tempROW == row:
      print("No changes to row",row)
    else:
      print("File changed", row)

问题在于,由于tempROW变量指向相同的数据,因此未检测到任何更改。

我已经尝试过.copy(),但这行不通。帮助表示赞赏。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 22:52:43 574 0
1 条回答
写回答
取消 提交回答
  • 您可以使用copy.deepcopy:

    import copy
    
    for row in csv_reader:
        tempROW = copy.deepcopy(row)
    

    如果使用dict.copy,则将只有tempROWdict的浅表副本。

    回答来源:stackoverflow

    2020-03-24 22:52:50
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载