加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python中排序磁盘I / O错误

发布时间:2020-12-20 12:15:30 所属栏目:Python 来源:网络整理
导读:如何从“尝试写入只读文件系统”中挑选(区分)从“磁盘已满状态”派生的错误? 我不想填写我的高清来找出:) 我想要的是知道谁捕获每个异常,所以我的代码可以在用户尝试写入ReadOnly FS时向用户说些什么,如果用户试图在磁盘已满的情况下写入文件,则可以说出另
如何从“尝试写入只读文件系统”中挑选(区分)从“磁盘已满状态”派生的错误?
我不想填写我的高清来找出:)
我想要的是知道谁捕获每个异常,所以我的代码可以在用户尝试写入ReadOnly FS时向用户说些什么,如果用户试图在磁盘已满的情况下写入文件,则可以说出另一条消息.

解决方法

一旦捕到IOError,例如使用 Python 2中的IOError,e:子句,你可以检查e.errno以确切地找出它是什么类型的I / O错误(不幸的是,这种方式不一定在不同的操作系统中完全可移植).

请参阅Python标准库中的errno模块;打开一个文件写在R / O文件系统上(在一个合理的操作系统上)应该产生errno.EPERM,errno.EACCES或更好的errno.EROFS(“只读文件系统”);如果文件系统是R / W但没有剩余空间你应该得到errno.ENOSPC(“设备上没有空间”).但是你需要在你关心的操作系统上进行试验(用一个小的USB密钥来填充它应该很容易;-).

根据errno,没有办法使用不同的except子句 – 这些子句必须通过它们捕获的异常类来区分,而不是通过异常实例的属性来区分 – 所以你需要if / else或其他类型的调度除了IOError,e:子句之外的单个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读