2011-12-19 2 views
2

Я пытаюсь добавить в CSV-файл с помощью следующего кодаPython - добавление в CSV

import csv 
cat_options = [row for row in csv.reader(open('catOptions.csv', 'r'), delimiter =',')] 
print cat_options 
new_cat = raw_input("\nEnter the new category: ") 
cat_options = csv.writer(open('catOptions.csv', 'a')) 
cat_options = cat_options.writerows(new_cat) 

Ниже приводится выход: "Корпус" "Транспорт" S v я n g s

В файле «catOptions.csv» есть жилье и транспорт. Я попытался добавить сбережения и не получил желаемого результата. Каждое слово появляется на отдельной строке. Однако следующий код дает мне желаемый результат, но мне любопытно узнать, есть ли эффективный способ сделать это.

import csv 
cat_options = [row for row in csv.reader(open('catOptions.csv', 'r'), delimiter =',')] 
print cat_options 
new_cat = [] 
new_cat.append(raw_input("\nEnter the new category: ")) 
cat_options = csv.writer(open('catOptions.csv', 'a')) 
cat_options = cat_options.writerows([new_cat]) 

Заранее благодарен!

ответ

5

Используйте csvwriter.writerow(), если вы хотите написать только одну строку.

+0

Однако вы все равно хотите создать список, так как строка состоит из нескольких элементов. Писатель csv не знает, сколько столбцов вам нужно, поэтому он ожидает, что вы пройдете итерабельность. Строки повторяются и разбиваются на отдельные символы. –

+0

Я попробовал это и следующее выход «Корпус» «Транспорт» «Экономия» «Здоровье» «Personal» «Развлечение» Т, е, с, т Карл, ты прав, я необходимо будет использовать его в качестве списка. –

Смежные вопросы