У меня есть следующий код, который я использую для создания и добавления новой строки в файл csv.
def calcPrice(data):
fieldnames = ["ReferenceID","clientName","Date","From","To","Rate","Price"]
with open('rec2.csv', 'a') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerow(data)
return
Однако это также заголовок как новая строка. Как я могу предотвратить это?
1 ответ
Метод writeheader
записывает строку заголовка, поэтому его следует использовать только для пустого файла.
Сначала вы должны проверить, был ли файл пустым или нет, и написать только строку заголовка в пустой файл:
import os
...
with open('rec2.csv', 'a') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
if 0 == os.lseek(csvfile, 0, os.SEEK_END):
writer.writeheader()
writer.writerow(data)
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.