Есть много вопросов о том, как написать CSV в цикле, но моя проблема похожа, но отличается:
Что я хочу:
- Я хочу записать словарь в CSV-файл непрерывно в цикле
- в начале должен быть заголовок
- тогда в каждом цикле он должен записывать результаты в этот CSV-файл в виде новой строки
- Поскольку у меня более 10.000 файлов, я прекращаю программу каждый раз после некоторой итерации и хочу иметь возможность прочитать файл csv
import csv
def main(file):
output=open('output.csv', mode='a', newline='')
fieldnames = ['filename', 'speed','lane','coordinates']
output_writer = csv.DictWriter(output, fieldnames=fieldnames, delimiter=';', quotechar='"', quoting=csv.QUOTE_MINIMAL)
output_writer.writeheader()
for file_name in file:
coordinates=.... #myprogramm
for i_result in range(len(coordinates)):
speed=... #my programm #filetype: int
coordinates=... #my programm #filetype: dictionairy
lane= #my programm #filetype: int or None
output_writer.writerow({"filename": file_name, "speed": speed, "lane": str(lane), 'coordinates': coordinates[i_result]})
output.close()
Также я попробовал
with open('output.csv', mode='a', newline='') as output:
И
Тоже попробовал mode ="w"
Но это дает мне файл с многократным заголовком назад. Я запутался, потому что заголовок находится за пределами цикла