복붙노트

[PYTHON] ValueError : 닫힌 파일에 대한 I / O 작업

PYTHON

ValueError : 닫힌 파일에 대한 I / O 작업

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 2.7.3을 사용하고 있습니다. 미리 감사드립니다.

해결법

  1. ==============================

    1.들여 쓰기 올바르게; for 문은 블록 내부에 있어야합니다.

    들여 쓰기 올바르게; for 문은 블록 내부에 있어야합니다.

    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
    
  2. ==============================

    2.같은 오류는 탭 + 공백을 혼합하여 올릴 수 있습니다.

    같은 오류는 탭 + 공백을 혼합하여 올릴 수 있습니다.

    with open('/foo', 'w') as f:
     (spaces OR  tab) print f       <-- success
     (spaces AND tab) print f       <-- fail
    
  3. from https://stackoverflow.com/questions/18952716/valueerror-i-o-operation-on-closed-file by cc-by-sa and MIT license