Я пытаюсь добавить новую строку в мой старый CSV-файл. По сути, он обновляется каждый раз, когда я запускаю скрипт Python.
Прямо сейчас я сохраняю старые значения строк CSV в списке, а затем удаляю файл CSV и создаю его снова с новым значением списка.
Хотел узнать, есть ли лучшие способы сделать это.
Я предпочитаю это решение, используя
csv
модуль из стандартной библиотеки иwith
оператор, чтобы не оставлять файл открытым.Ключевой момент используется
'a'
для добавления при открытии файла.Если вы используете Python 2.7, у вас могут появиться лишние новые строки в Windows. Однако вы можете попытаться избежать их использования,
'ab'
вместо этого'a'
это приведет к возникновению ошибки TypeError: требуется байтоподобный объект, а не 'str' в python и CSV в Python 3.6. Добавлениеnewline=''
, как предполагает Наташа, приведет к обратной несовместимости между Python 2 и 3 .источник
Основываясь на ответе @GM и обращая внимание на предупреждение @John La Rooy, я смог добавить новую строку, открывая файл в
'a'
режиме.Я не пытался с обычным писателем (без Dict), но я думаю, что это тоже будет хорошо.
источник
Вы открываете файл с режимом «а» вместо «w»?
См. Чтение и запись файлов в документации по Python.
источник
Если файл существует и содержит данные, то можно автоматически сгенерировать
fieldname
параметр дляcsv.DictWriter
:источник
источник
Я иду по этому пути, чтобы добавить новую строку в файл .csv:
источник