Как написать словарь CSV в цикле? - PullRequest
0 голосов
/ 20 мая 2019

Есть много вопросов о том, как написать 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"

Но это дает мне файл с многократным заголовком назад. Я запутался, потому что заголовок находится за пределами цикла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...