ValueError: операция ввода-вывода в закрытом файле
import csv
with open('v.csv', 'w') as csvfile:
cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)
for w, c in p.iteritems():
cwriter.writerow(w + c)
здесь p словари, w и c оба являются строками.
когда я пытаюсь писать в файл, он сообщает об ошибке:
ValueError : I/O operation on closed file.
помогите мне, я действительно Новичок в python. Я работаю с Python 2.7.3 Заранее спасибо.
2 ответа:
правильно отступ;
forзаявление должно быть внутриwithблок:import csv with open('v.csv', 'w') as csvfile: cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) for w, c in p.iteritems(): cwriter.writerow(w + c)за пределами
withблок, файл закрыт.>>> with open('/tmp/1', 'w') as f: ... print f.closed ... False >>> print f.closed True