Python:删除两个CSV文件之间的旧记录和重复文件

时间:2017-03-01 03:26:46

标签: python csv

使用Python的初学者,需要帮助才能完成任务!

我有两个csv文件。 old.csv和new.csv

两者都具有相同的结构(A到Z列),并且每个记录在列F(第六列)中具有唯一的标识符,该标识符是数字。在这两个CSV之间有一些重复的记录。

我正在寻找一种方法来消除old.csv中的记录,从new.csv和输出到具有相同结构的新文件,所以新的output.csv只有新的记录。

实现这一目标的好方法是什么?我需要能够通过命令行在Windows机器上运行它。

任何帮助表示赞赏!提前谢谢!

2 个答案:

答案 0 :(得分:0)

阅读csv文件并将其映射到元组

import csv

f = open('old.csv', 'rb')
reader = csv.reader(f)
reader =  map(tuple,reader)

fn = open('new.csv', 'rb')
readern = csv.reader(fn)
readern = map(tuple,readern)

获取old.csv中的所有唯一标识符

from operator import itemgetter
reader= map(itemgetter(5), reader)

添加标识符不在old.csv中的所有项目,将它们添加到唯一列表

unique= [item for item in readern if item[5] not in reader]

将行写入output.csv

output = open("output.csv", 'wb')
wr = csv.writer(output)
for row in unique:
        wr.writerow(row)
output.close()

希望这有帮助!

答案 1 :(得分:0)

一个简单的方法是:

  • 从集合
  • 中收集old.csv中的所有标识符
  • 循环通过new.csv
  • 如果记录在您的集合中具有noz的标识符,请将其写入output.csv

您可能希望使用csv模块来读取和写入文件。