Как добавить заголовок в csv-файл в Python?

Я пробовал много решений для добавления заголовка в мой csv-файл, но ничего не работает должным образом. Вот они :

  1. я использовал метод writerow, но мои данные перезаписывают первую строку.

  2. я использовал метод DictWriter, но я не знаю, как правильно его заполнить. Вот мой код:

    csv = csv.DictWriter(open(directory +'/csv.csv', 'wt'), fieldnames = ["stuff1", "stuff2", "stuff3"], delimiter = ';')
    csv.writeheader(["stuff1", "stuff2", "stuff3"])
    

Я получил ошибку "2 аргумента вместо одного", и я действительно не знаю, почему.

любой совет?

2 ответов


все, что вам нужно сделать, это позвонить DictWriter.writeheader() без аргументов:

with open(os.path.join(directory, 'csv.csv'), 'wb') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames = ["stuff1", "stuff2", "stuff3"], delimiter = ';')
    writer.writeheader()

вы уже сказал DictWriter() каковы ваши заголовки.


я столкнулся с аналогичной проблемой при написании CSV-файла. Мне пришлось прочитать csv-файл и изменить некоторые поля в нем. Писать заголовок в CSV-файл, я использовал следующий код:

reader = csv.DictReader(open(infile))
headers = reader.fieldnames

with open('ChartData.csv', 'wb') as outcsv:
    writer1 = csv.writer(outcsv)
    writer1.writerow(headers)

и когда вы пишете строки данных, вы можете использовать DictWriter следующим образом

writer = csv.DictWriter(open("ChartData.csv", 'a' ), headers)

В приведенном выше коде "а" расшифровывается как добавление.

В заключение - > использовать a to добавить сведения в CSV после того как вы написали свой заголовок в тот же файл