2016-09-28 31 views
0

我有兩個csv文件result.csv和sample.csv。Python重寫而不是追加

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否則在每行添加0 sample.csv

它應該看起來像M11435TDS144,STB#1,Router#1,1和M11543TH4258,STB#4,Router#1,0自M11543TH4258不是佛UND在result.csv

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 

我每次運行該腳本,1和0正在被添加到一個新的列sample.csv中。每次運行腳本時都有任何方法,我可以替換附加列而不是增加列。

+0

爲什麼生活困難?只需更改輸出文件的名稱即sample_result.csv。然後你的代碼工作。所有你以後要做的是處理新文件而不是sample.csv。 –

回答

0

你寫信給sample.csv,然後用它作爲輸入文件和附加列。這就是爲什麼你在這個文件中有更多1和0的原因。 問候,Grzegorz