如何阻止writer.writerows(all)在完成后重复这些行

时间:2015-03-09 16:28:52

标签: python python-2.7 csv

我使用此代码从CSV文件中读取推文并将结果写入新文件。它运作良好,但问题是作者不会停止并重复这一行,请求任何帮助?

with open('D:\oopp.csv', 'rU') as csvinput:
    with open('D:/test8_datasets_output.csv', 'wb') as csvoutput:
        writer = csv.writer(csvoutput,lineterminator='\n')
        reader = csv.reader(csvinput)

        all=[]
        row = next(reader)

        for row in reader:
            features = get_features_from_tweet(row[0])
            result1 = classifier1.classify(features)
            result2 = classifier2.classify(features)

            row.append(result1)
            row.append(result2)

            all.append(row)

            writer.writerows(all)

OUT PUT:[[“特斯拉远离其达到Apple市值的目标http://t.co/uv6q87moTt”,'亲','负']] [[“特斯拉远离其达到苹果市值的目标http://t.co/uv6q87moTt”,“亲”,'负'],['苹果1万亿美元的股票市值可能需要几年时间http://t.co/twZmljm5y3','亲','负']] [[“特斯拉远离其达到苹果市值的目标http://t.co/uv6q87moTt”,“亲”,'负'],['苹果1万亿美元的股票市值可能需要几年时间http://t.co/twZmljm5y3',' pro','neg'],['Apple已在全球供应商工厂禁止“保税奴役”http://t.co/kcJGLtgMjF http://t.co/KCYwDyqBEU','in','po']] [[“特斯拉远离其达到苹果市值的目标http://t.co/uv6q87moTt”,“亲”,'负'],['苹果1万亿美元的股票市值可能需要几年时间http://t.co/twZmljm5y3',' pro','neg'],['Apple已禁止全球供应商工厂的“保税奴役”http://t.co/kcJGLtgMjF http://t.co/KCYwDyqBEU','in','po'],“”阿里巴巴的Jack Ma寻求安抚员工因美国诉讼http://t.co/ykFribORTH“,'in','po']]

1 个答案:

答案 0 :(得分:4)

您要附加到列表,然后在循环中写入列表。

不是附加到列表,而是使用writer.writerow()(无s)分别编写每一行:

with open('D:\oopp.csv', 'rU') as csvinput:
    with open('D:/test8_datasets_output.csv', 'wb') as csvoutput:
        writer = csv.writer(csvoutput,lineterminator='\n')
        reader = csv.reader(csvinput)

        row = next(reader)

        for row in reader:
            features = get_features_from_tweet(row[0])
            result1 = classifier1.classify(features)
            result2 = classifier2.classify(features)
            writer.writerow(row + [result1, result2])