我尝试编写一个脚本,该脚本将打开CSV文件,并根据g
第4列中唯一电话号码的匹配条件将该文件中的行写入新的CSV文件。电话号码始终位于第4列,并且通常在文件中重复,但其他列通常是唯一的,因此每行本身都是唯一的。
我读csv文件中的一行如下所示:( TN为csv.csv
)
9259991234
我在下面的代码中遇到错误,说' _csv.writer'是不可迭代的,我不知道如何修改我的代码来解决问题。
2,PPS,2015-09-17T15:44,9259991234,9DF51758-A2BD-4F65-AAA2
答案 0 :(得分:0)
您的错误源自此表达式:
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()
电话;你想写行,而不是文件对象。