Переписывание Python вместо добавления
У меня есть два 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, добавить 0 в каждой строке в sample.csv
Он должен выглядеть как M11435TDS144,STB#1,Router#1,1 и M11543TH4258,STB#4,Router#1,0, так как M11543TH4258 не найден в 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. Есть ли способ каждый раз, когда я запускаю скрипт, я могу заменить добавленный столбец вместо увеличения столбцов.
1 ответ
Ты пишешь в sample.csv
а затем вы используете его в качестве входного файла с дополнительным столбцом. Вот почему у вас есть все больше и больше 1 и 0 в этом файле. С уважением, Гжегож