2016-06-22 4 views
-3

Я делал это 100 раз, но по какой-то причине я не могу заставить это работать. Что я делаю не так?Запись на CSV-вопрос

csv_file = open('test_a.csv', 'wb') 
writer = csv.writer(csv_file) 
writer.writerow('test') 

ИЛИ

csv_file = open('test_a.csv', 'wb') 
writer = csv.writer(csv_file) 
writer.writerows(['test']) 

ИЛИ

csv_file = open('test_a.csv', 'a') 
writer = csv.writer(csv_file) 
writer.writerow('test') 

Файл CSV создается, но ничего не будет записано.

+1

вы получите сообщение об ошибке или неожиданный выход? –

+0

обновил мой вопрос –

+1

Несвязанный, но почему вы открываете файл в двоичном режиме? Кроме того, завершена ли программа, когда вы проверяете файл или это какой-то текущий цикл? –

ответ

1

Позвоните в .close() на объекте файл или открыть with контекст менеджер:

with open('test_a.csv', 'wb') as csv_file: 
    writer = csv.writer(csv_file) 
    writer.writerow(['test']) 
+0

В чем разница между использованием «с» и не использованием? –

+0

Сохраняет бремя вызова 'csv_file.close()'. Python делает закрытие и очистку для вас, как только закончился контекст 'with'. –

+0

получил. это сработало! Спасибо –

-1

Метод writerow ожидает список значений. Вы даете ему строку, которая итерабельна .. поэтому вы получаете t, e, s, t, который, вероятно, не тот, который вы хотите. Убедитесь, что вы передаете список:

writer.writerow(['test']) 
+0

, к сожалению, ничего не записывается в файл CSV, и я не понимаю, почему –

+0

Я запустил ваш код, и он работал иначе, чем эта проблема. Однако после этого я закрыл файл. Закрываете ли вы файл? –