在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:子句之外的单个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |