ValueError : I/O operation on closed file ValueError : I/O operation on closed file python python

ValueError : I/O operation on closed file


Indent correctly; your for statement should be inside the with block:

import csv    with open('v.csv', 'w') as csvfile:    cwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)    for w, c in p.items():        cwriter.writerow(w + c)

Outside the with block, the file is closed.

>>> with open('/tmp/1', 'w') as f:...     print(f.closed)... False>>> print(f.closed)True


Same error can raise by mixing: tabs + spaces.

with open('/foo', 'w') as f: (spaces OR  tab) print f       <-- success (spaces AND tab) print f       <-- fail


I was getting this exception when debugging in PyCharm, given that no breakpoint was being hit. To prevent it, I added a breakpoint just after the with block, and then it stopped happening.