Python重写而不是附加

时间:2016-09-28 14:57:08

标签: python csv fileappender

我有两个csv文件result.csv和sample.csv。

result.csv

M11251TH1230 
M11543TH4292 
M11435TDS144

sample.csv

M11435TDS144,STB#1,Router#1 
M11543TH4292,STB#2,Router#1 
M11509TD9937,STB#3,Router#1
M11543TH4258,STB#4,Router#1

我有一个python脚本,如果result.csv中的行与sample.csv中的第一个字匹配,则比较两个文件,然后追加1,否则在sample.csv中的每一行追加0

它应该看起来像M11435TDS144,STB#1,路由器#1,1和M11543TH4258,STB#4,路由器#1,0,因为在result.csv中找不到M11543TH4258

script.py

import csv
with open('result.csv', 'rb') as f:
    reader = csv.reader(f)
    result_list = []
    for row in reader:
        result_list.extend(row)


with open('sample.csv', 'rb') as f:
    reader = csv.reader(f)
    sample_list = []
    for row in reader:
        if row[0] in result_list:
            sample_list.append(row + [1])
        else:
            sample_list.append(row + [0])

with open('sample.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(sample_list)

示例输出(sample.csv)如果我运行脚本两次

M11435TDS144,STB#1,Router#1,1,1 
M11543TH4292,STB#2,Router#1,1,1
M11509TD9937,STB#3,Router#1,0,0
M11543TH4258,STB#4,Router#1,0,0

每次运行脚本时,都会在新列sample.csv中附加1和0。有没有办法每次运行脚本时,我都可以替换附加的列而不是增加列。

1 个答案:

答案 0 :(得分:0)

您写入sample.csv,然后将其用作输入文件,附加列。这就是为什么你在这个文件中有越来越多的1和0。 此致,Grzegorz