Я пытаюсь добавить строку в начале строки, пока она записывается в файл. Я использую функцию .writerow () библиотеки csv и передаю внутри нее упорядоченный дикт.
У меня есть файл в формате, подобном: A, B, C, D, E 123,234,345,456,567 1123,1234,1345, 1456,1567
Ожидаемый выход после мутации: A, B, C, D, E 1, «123», «234», «345», «456», «567» 1, «1123», «1234», «1345», «1456», «1567» пользовательский нижний колонтитул здесь
Я знаю, что выше, возможно, не является допустимым форматом CSV. Но вот как я этого хочу. : D
т. Е. 1 в начале 2–2 последней кавычки последней строки вокруг каждого поля
Пример данных, например, для input.csv
A,B,C,D,E
123,234,345,456,567
1123,1234,1345,1456,1567
When above read with `csv_reader = csv.DictReader(read_file, delimiter=',')` it'll show something like
for i in csv_reader:
print(i)
OrderedDict ([(«A», «123»), («B», «234»), («C», «345»), («D», «456»), («E», «567»)]) OrderedDict ([(«A», «1123»), («B», «1234»), («C», «1345»), («D», «1456»), («E»,'1567')])
При добавлении (['some_string'] + order_dict_row) выдается ошибка, из-за которой заказанный приговор не может быть объединен со списком.
Попытка ввести дополнительный ключговорит, что ключ не может быть найден в именах полей
Пытался ввести столбец и добавить к нему 1, но пока не смог сделать это успешно.
csv_reader = csv.DictReader(read_file, delimiter=',')
# fieldnames = ['row_type_identifier'] + csv_reader.fieldnames
with open(f'{file_path}', 'r') as read_file:
csv_reader = csv.DictReader(read_file, delimiter=',')
# fieldnames = ['row_type_identifier'] + csv_reader.fieldnames
csv_writer = csv.DictWriter(write_file, fieldnames=out_fields)
write_file.write(header)
write_file.write('\n')
count = 0
for row in csv_reader:
# row.update({'row_type_identifier':'1'})
# row.move_to_end('row_type_identifier', last=False)
print(row)
csv_writer.writerow(row)
I've a file with format like:
A,B,C,D,E
123,234,345,456,567
1123,1234,1345,1456,1567
Expected output after mutation:
A,B,C,D,E
1,"123","234","345","456","567"
1,"1123","1234","1345","1456","1567"
a custom footer here