Python unclosed resource:删除文件是否安全?

 南非酋长 发布于 2023-02-04 14:58

用我的方式搜索这个问题,但没有找到任何解决方案.我正在使用Eclipse和PyDev插件运行Python 3.3,当我运行任何Python项目时,我收到以下消息:

/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/update_checker.py:37: ResourceWarning: unclosed file <_io.BufferedReader name='/var/folders/x4/st67yr0x6qg7znh7sdfr94kh0000gn/T/update_checker_cache.pkl'>
  permacache = pickle.load(open(filename, 'rb'))

我对Python很陌生,我不知道这意味着什么.我想在删除之前询问,以确保删除是安全的.这甚至意味着什么?我得到的是一个打开的文件......但为什么Python会向我抱怨?我正在使用PRAW库,如果这有任何区别的话.

更新:我的代码在sourceforge上,但它不能可靠地提出错误(在2台不同的计算机上试过).一旦出现错误,它就永远不会消失.

1 个回答
  • 此ResourceWarning意味着您打开了一个文件,使用它,但后来忘记关闭该文件.当Python注意到文件对象已经死亡时,Python会为你关闭它,但这只会在经过一段时间后才会发生.因此,在最近的版本中,Python也会在执行此操作时打印ResourceWarning.这是一种快速识别未封闭文件的位置并正确关闭它们的方法.在某些平台上可能很重要,这些平台不能同时打开多于N个文件(例如1024).此外,特别是在Windows上,如果文件仍处于打开状态(例如删除它),则无法对文件执行某些操作.

    在这种情况下,文件中的行update_checker.py需要修复为:

    with open(filename, 'rb') as f:   # will close() when we leave this block
        permacache = pickle.load(f)
    

    2023-02-04 15:01 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有