使用Python 2.7解析CSV文件

时间:2015-10-01 18:40:16

标签: python python-2.7 csv

我尝试编写一个脚本,该脚本将打开CSV文件,并根据g第4列中唯一电话号码的匹配条件将该文件中的行写入新的CSV文件。电话号码始终位于第4列,并且通常在文件中重复,但其他列通常是唯一的,因此每行本身都是唯一的。

我读csv文件中的一行如下所示:( TN为csv.csv

9259991234

我在下面的代码中遇到错误,说' _csv.writer'是不可迭代的,我不知道如何修改我的代码来解决问题。

2,PPS,2015-09-17T15:44,9259991234,9DF51758-A2BD-4F65-AAA2

1 个答案:

答案 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()电话;你想写行,而不是文件对象。