2017-03-01 103 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模塊讀取和寫入文件。