我試圖從舊文件中創建一個組合的csv文件,其中有一些重複項,但是在我的代碼中出現錯誤。 'test2.csv'更大並且有新的行,'test1.csv'是我正在嘗試創建的新文件。如何檢查csv中是否已存在行
new = []
with open('test1.csv','rb') as file1:
reader = csv.reader(file1,delimiter=',')
with open('test2.csv','rb') as file2:
reader2 = csv.reader(file2,delimiter=',')
for row in reader2:
if row not in reader:
new.append(row)
for row in new:
print row
編輯:
我的測試文件看起來像這樣
test1.csv:
28/11 16 VwS (10) Ha MaSSe (16) mirage Global Offensive Champions League Season 5 39247 6756 7472 2596 10 16 8459,9434,11307,9410,8460 11838,11837,12943,11840,12944
28/11 16 Ulti (0) Signature (16) mirage fpsGOD Super League Winter 39251 7343 6774 2533 0 16 12429,12427,12430,12428,12431 9288,10664,9289,11248,12129
test2.csv:
28/11 16 Singularity (14) Elements (16) nuke Global Offensive Champions League Season 5 39252 6978 7489 2596 14 16 9317,2822,8862,8875,7463 8726,7405,8727,8368,8410
28/11 16 eSuba (9) Pathless (16) cache Gauntlet: Fight for the Crown 39253 5412 7433 2430 9 16 9666,10458,7723,9358,3143 9891,9412,12767,12945,12766
28/11 16 Pathless (16) eSuba (13) mirage Gauntlet: Fight for the Crown 39248 7433 5412 2430 16 13 9412,12945,12767,9891,12766 9666,7723,10458,9961,9358,3143
28/11 16 VwS (10) Ha MaSSe (16) mirage Global Offensive Champions League Season 5 39247 6756 7472 2596 10 16 8459,9434,11307,9410,8460 11838,11837,12943,11840,12944
28/11 16 Ulti (0) Signature (16) mirage fpsGOD Super League Winter 39251 7343 6774 2533 0 16 12429,12427,12430,12428,12431 9288,10664,9289,11248,12129
所以,我想將缺少的行添加到test2.csv中的test1.csv。
執行腳本時遇到了什麼問題? – Atreys
即使文件相同,也會打印每一行。我只是希望它打印只在其他csv文件中的行。 – tmi12
你能用幾行來說明test1和test2是什麼嗎?如果您正在嘗試創建一個名爲test1.csv的文件,那麼當您最初閱讀它時爲什麼會有任何行?似乎比編碼更像一個邏輯問題。 – Atreys