ValueError: I/O operation on closed file 解決辦法


報錯: ValueError: I/O operation on closed file 

  • ValueError: I/O operation on closed file。是指處理了已經被關閉的數據。一般是語句沒有對齊。當python的處理代碼不對齊的時候會出現這種情況。
  • 使用with方法打開了文件,生成的文件操作實例在with語句之外是無效的,因為with語句之外文件已經關閉了。

報錯部分代碼:

class Maoyan(object):
    ...
    def run(self):
        response = self.get_data()
        datas = self.parse_data(response)
        self.save_data(datas)


if __name__ == '__main__':
    ...
    with open('貓眼.csv', 'a', newline='', encoding="utf8") as f:
        csv_writer = csv.writer(f)
        csv_writer.writerow(head)

    maoyan = Maoyan()
    maoyan.run()

 

解決:

檢查了很多遍,因為已經確認了是縮進的問題,最后才發現最后兩行代碼也要縮進,因為調用的保存也要在with語句塊里能有效。

在這里插入圖片描述
改成圖片里這樣就可以運行了!

在這里插入圖片描述

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM