我與蟒蛇(與語言相當缺乏經驗)和文件I/O,並遇到下列錯誤修補跑:爲什麼python不會寫入這個打開的文件?
ValueError: I/O operation on closed file.
非常簡單,所以我在打印語句來檢查的下降的outfile
狀態,看看發生了什麼事情與我的代碼:
import json
data = {'thing1' : 'foo', 'thing2' : 'bar'}
def writeToJSON():
with open('data.json', 'w') as outfile:
print outfile.closed # outputs 'False', as expected
jsonifiedData = json.dumps(data, indent=4, sort_keys=True, separators=(',', ':'), ensure_ascii=False)
outfile.write(unicode(jsonifiedData)) # trace identifies this line as the issue
writeToJSON()
縮進看起來乾淨,所以這是怎麼回事嗎?
該文件在運行時顯示爲打開,但解釋器立即抱怨在傳送儘可能多的信息後寫入該文件。
謝謝!
編輯:
添加整個文件。
此外,這是運行blurp.py
時的完整輸出:
False
Traceback (most recent call last):
File "blurp.py", line 11, in <module>
writeToJSON()
File "blurp.py", line 9, in writeToJSON
outfile.write(unicode(jsonifiedData))
ValueError: I/O operation on closed file
你能顯示回溯錯誤嗎? –
在我的Linux上檢查了這個,看起來一切正常。 – wanderlust
@wanderlust,hm ...我在macOS上,python 2.7.13,也許這是一個系統的東西......我也會在我的linux機器上試試這個。 – nrebhun