我試圖根據列是否具有唯一值來刪除csv文件中的重複行。我的代碼如下所示:試圖根據列值刪除基於csv文件的行
seen = set()
for line in fileinput.FileInput('DBA.csv', inplace=1):
if line[2] in seen:
continue # skip duplicated line
seen.add(line[2])
print(line, end='')
我試圖在每一行中獲取2索引列的值,並檢查它是否是唯一的。但由於某種原因,我看到的集看起來像這樣:
{'b', '"', 't', '/', 'k'}
任何意見,我的邏輯有瑕疵?
該生產線是迭代的字符,而不是領域。要使用字段,您需要使用'csv.reader',而不是'fileinput'。 – wim
我的理解fileinput允許我編輯文件就地。這也可以用於csv.reader嗎? – Rainoa
@Rainoa很確定'fileinput'只是創建一個內存中的備份來「就地修改」。你可以手動做到這一點。它的主要用例是使用*多個文件*,但是對於單個文件,這非常簡單。 –