добавить новую строку в старый файл csv python

Я пытаюсь добавить новую строку в мой старый файл csv. В основном, он обновляется каждый раз, когда я запускаю скрипт Python.

Сейчас я храню старые значения строк csv в списке, а затем удаляет файл csv и снова создаю его с новым значением списка.

Хотелось узнать, есть ли лучшие способы сделать это.

3 Solutions collect form web for “добавить новую строку в старый файл csv python”

fd = open('document.csv','a') fd.write(myCsvRow) fd.close() 

Открытие файла с параметром 'a' позволяет добавлять в конец файла вместо простой перезаписи существующего содержимого. Попробуй это.

Я предпочитаю это решение с помощью модуля csv из стандартной библиотеки и open метода, чтобы не оставлять файл открытым.

Ключевым моментом является использование 'a' для добавления при открытии файла.

 import csv fields=['first','second','third'] with open(r'name', 'a') as f: writer = csv.writer(f) writer.writerow(fields) 

В Windows могут возникнуть лишние новые строки. Вы можете попытаться избежать их использования 'ab' вместо 'a' .

Вы открываете файл с режимом «a» вместо «w»?

См. Чтение и запись файлов в документах python.

7.2. Чтение и запись файлов

open () возвращает объект файла и чаще всего используется с двумя аргументами: open (имя файла, режим).

 >>> f = open('workfile', 'w') >>> print f <open file 'workfile', mode 'w' at 80a0960> 

Первый аргумент – это строка, содержащая имя файла. Второй аргумент – это другая строка, содержащая несколько символов, описывающих способ использования файла. mode может быть «r», когда файл будет считан только «w» только для записи (существующий файл с тем же именем будет удален), а «a» открывает файл для добавления; любые данные, записанные в файл, автоматически добавляются в конец. 'r +' открывает файл для чтения и записи. Параметр mode не является обязательным; 'r' будет приниматься, если он опущен.

В Windows «b», добавленный в режим, открывает файл в двоичном режиме, поэтому существуют также такие режимы, как «rb», «wb» и «r + b». Python в Windows делает различие между текстовыми и двоичными файлами; конечные символы в текстовых файлах автоматически изменяются, когда данные считываются или записываются. Эта за кадром модификация файловых данных отлично подходит для текстовых файлов ASCII, но это приведет к повреждению двоичных данных, подобных этим в файлах JPEG или EXE. Будьте очень осторожны, чтобы использовать двоичный режим при чтении и записи таких файлов. В Unix не помешает добавить «b» в режим, поэтому вы можете использовать его платформу независимо для всех двоичных файлов.

Python - лучший язык программирования в мире.