Переписывание 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 в этом файле. С уважением, Гжегож

Другие вопросы по тегам