[英]Parsing CSV files using Python 2.7
我正在嘗試編寫一個腳本,該腳本將打開CSV文件,並根據csv.csv
4列中唯一電話號碼的匹配條件將文件中的行寫入新的CSV文件。 電話號碼始終在第4列中,並且經常在文件中重復,但是其他列通常是唯一的,因此每一行本質上都是唯一的。
我正在讀取的csv文件中的一行看起來像這樣:( TN為9259991234
)
2,PPS,2015-09-17T15:44,9259991234,9DF51758-A2BD-4F65-AAA2
我在下面的代碼中遇到錯誤,說“ _csv.writer”不可迭代,而且我不確定如何修改代碼來解決問題。
import csv
import sys
import os
os.chdir(r'C:\pTest')
with open(r'csv.csv', 'rb') as f:
reader = csv.reader(f, delimiter=',')
with open (r'new_csv.csv', 'ab') as new_f:
writer = csv.writer(new_f, delimiter=',')
for row in reader:
if row[3] not in writer:
writer.writerow(new_f)
您的錯誤源於以下表達式:
row[3] not in writer
您無法針對csv.writer()
對象測試成員資格。 如果要跟蹤是否已經處理過電話號碼,請使用單獨的set()
對象來跟蹤那些電話號碼:
with open(r'csv.csv', 'rb') as f:
reader = csv.reader(f, delimiter=',')
with open (r'new_csv.csv', 'ab') as new_f:
writer = csv.writer(new_f, delimiter=',')
seen = set()
for row in reader:
if row[3] not in seen:
seen.add(row[3])
writer.writerow(row)
注意,我還更改了您的writer.writerow()
調用; 您要寫入行,而不是文件對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.