2017-03-01 113 views
0

Python初学者,需要帮助才能完成任务!Python:删除两个CSV文件之间的旧记录和副本

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

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

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

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

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

+0

你需要删除new.csv中的重复标识符并输出到另一个文件?我对吗? –

+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() 

希望这有助于!

0

一个简单的方法是:

  • 收集所有标识符从
  • 遍历new.csv一组old.csv
  • 如果记录有一个标识符,是NOZ在您所设定的,写它输出.sv

您可能会想要使用csv模块读取和写入文件。