добавить новую строку в старый файл 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» в режим, поэтому вы можете использовать его платформу независимо для всех двоичных файлов.

Interesting Posts

использовать try / except с psycopg2 или «с закрытием»?

Как я могу управлять клавиатурой и мышью с помощью Python?

webapp2, Jinja2: как вырезать большой html-файл в несколько html-файлов

Как удалить jupyter

Selenium-Python: взаимодействие с системными модальными диалогами

привязка к движению курсора не изменяет знак INSERT

Как хранить объекты, отличные от строк, в комьюнити wxPython?

Python timedelta: не могу я просто получить в любое время единицы я хочу значение всей разницы?

Python ImportError не может импортировать urandom. Обновление Ubuntu 12.04

Twisted Python: максимальный размер пакета? Флеш-гнездо?

Python – как отсортировать список числовых значений в порядке возрастания

Python: как реализовать __getattr __ ()?

почему b '(а иногда и b' ') появляется, когда я разделяю некоторый исходный HTML-код

Python: как вычислить количество кратчайших путей, проходящих через один узел?

Выделение элементов из списка python с определенными индексами

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