2013-09-23 120 views
48
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) 

Ở đây, p là một cuốn từ điển, wc cả hai đều là chuỗi.ValueError: I/O hoạt động trong hồ sơ khép kín

Khi tôi cố gắng viết trong file nó báo cáo lỗi:

ValueError : I/O operation on closed file. 

giúp tôi, tôi thực sự mới để trăn. Tôi đang làm việc với Python 2.7.3 Cảm ơn bạn trước.

Trả lời

76

Thụt lề chính xác; for tuyên bố sẽ vào được bên with khối:

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) 

Bên ngoài khối with, các tập tin được đóng lại.

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

Cảm ơn! Bạn đã tiết kiệm cho tôi nhiều giờ nỗ lực lãng phí :) – Learner23

+0

Không thể tin rằng lỗi này đã được tra cứu rất nhiều lần !! – user1767754