【发布时间】:2017-02-06 15:29:52
【问题描述】:
我有两个 csv 文件 result.csv 和 sample.csv。
结果.csv
M11251TH1230
M11543TH4292
M11435TDS144
样本.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 中的行中的第一个单词匹配,它将比较两个文件,然后在 sample.csv 中的每一行附加 1 否则附加 0
它应该看起来像 M11435TDS144,STB#1,Router#1,1 和 M11543TH4258,STB#4,Router#1,0,因为在 result.csv 中找不到 M11543TH4258
脚本.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。有什么办法可以在每次运行脚本的时候,替换追加的列而不是增加列。
【问题讨论】:
-
为什么要过日子?只需更改输出文件的名称,即 sample_result.csv。然后你的代码工作。您稍后要做的就是处理新文件而不是 sample.csv。
标签: python csv fileappender