Python3 errno模块

errno模块

  1. 这个模块提供了标准的errno系统符号,每个符号的值对应一个整数值。
  2. 字典errno.errorcode是数字代码与系统符号名称的映射。例如:errno.errorcode[2]返回字符串ENOENT
  3. 如果想要将错误代码映射到错误消息,可以使用os.strerror()函数。例如:os.strerror(errno.ENOENT)返回"No such file or directory"。

以下列出部分错误代码对应的错误消息

errno.EPERM 无权操作(1)
errno.ENOENT 没有该文件或目录(2)  
errno.ESRCH 无此进程(3)  
errno.EINTR 系统调用被打断(4)  
errno.EIO I/O 错误(5)  
errno.ENXIO 无此设备或地址(6)  
errno.E2BIG 参数列表过长(7)  
errno.ENOEXEC Exec 格式错误(8)
errno.EBADF 文件个数出错(9)
errno.ECHILD 没有子进程(10)
errno.EAGAIN 重试(11)
errno.ENOMEM 内存不足(Out of memory)(12)
errno.EACCES 访问权限不足(13)    
errno.EFAULT 地址错误(14)  
errno.ENOTBLK 需要块设备(15)
errno.EBUSY 设备或资源正忙(16)
errno.EEXIST 文件已存在(17)
errno.EXDEV 跨设备符号(Cross-device link)
errno.ENODEV 没有这个设备
errno.ENOTDIR 不是一个目录
errno.EISDIR 这是一个目录
errno.EINVAL 参数无效
errno.ENFILE 文件表溢出
errno.EMFILE 打开文件过多
errno.ENOTTY 与文件描述符关联的不是终端
errno.ETXTBSY 文本文件正忙
errno.EFBIG 文件过大
errno.ENOSPC 设备空间不足
errno.ESPIPE Illegal seek
errno.EROFS 只读文件系统
errno.EMLINK 链接过多
errno.EPIPE 管道损坏
errno.EDOM 数学参数超过函数的值域
errno.ERANGE数学结果不可表示
errno.EDEADLK 资源死锁
errno.ENAMETOOLONG 文件名过长
errno.ENOLCK 无可用记录锁
errno.ENOSYS 函数未实现
errno.ENOTEMPTY 目录非空
errno.ELOOP 太多符号链接
errno.EWOULDBLOCK 操作将会阻塞  
errno.ENOMSG 没有目标类型的消息
errno.EIDRM 标识符被删除
errno.ECHRNG Channel 数越界
errno.EL2NSYNC Level 2 未同步
errno.EL3HLT Level 3 停止
errno.EL3RST Level 3 重置
errno.ELNRNG Link 数越界
errno.EUNATCH Protocol driver not attached
errno.ENOCSI 没有CSI 结构可用
errno.EL2HLT Level 2 中止
errno.EBADE 无效的 exchange
errno.EBADR 无效的请求标识符
errno.EXFULL exchange 已满
errno.ENOANO No anode
errno.EBADRQC 无效请求码
errno.EBADSLT 无效 slot
errno.EDEADLOCK File locking deadlock error
errno.EBFONT 字体文件格式不合法
errno.ENOSTR 非流设备
errno.ENODATA 无可用数据  
errno.ETIME 定时器过期    
errno.ENOSR 无可用流资源  
errno.ENONET 机器不在网络上  
errno.ENOPKG 包未安装  
errno.EREMOTE 远程对象  
errno.ENOLINK Link has been severed  
errno.EADV 广播错误
errno.ESRMNT Srmount error  
errno.ECOMM Communication error on send  
errno.EPROTO 协议错误  
errno.EMULTIHOP 尝试进行多跳(Multihop)  
errno.EDOTDOT RFS specific error
errno.EBADMSG 不是数据消息  
errno.EOVERFLOW 值过大  
errno.ENOTUNIQ 在网络上的名称不唯一  
errno.EBADFD 文件描述字异常  
errno.EREMCHG 远程地址已变  
errno.ELIBACC 无法访问一个需要的公共库  
errno.ELIBBAD 正在访问一个受损的公共库  
errno.ELIBSCN a.out 文件中的 .lib 端受损  
errno.ELIBMAX 尝试链接太多的公共库  
errno.ELIBEXEC 无法直接执行一个公共库    
errno.EILSEQ 非法字节序  
errno.ERESTART 被打断的系统调用应该重启  
errno.ESTRPIPE 流管道错误Streams pipe error  
errno.EUSERS 用户过多  
errno.ENOTSOCK 在非套接字上进行套接字操作  
errno.EDESTADDRREQ 需要目的地地址    
errno.EMSGSIZE 消息过长  
errno.EPROTOTYPE Protocol wrong type for socket  
errno.ENOPROTOOPT 协议不可用  
errno.EPROTONOSUPPORT 协议不支持  
errno.ESOCKTNOSUPPORT 套接字类型不支持  
errno.EOPNOTSUPP Operation not supported on transport endpoint  
errno.EPFNOSUPPORT 协议族不支持  
errno.EAFNOSUPPORT 协议不支持地址族  
errno.EADDRINUSE 地址正在使用中  
errno.EADDRNOTAVAIL 无法指定请求的地址  
errno.ENETDOWN 网络已宕  
errno.ENETUNREACH 网络不可达  
errno.ENETRESET Network dropped connection because of reset  
errno.ECONNABORTED 软件造成的连接中止  
errno.ECONNRESET 连接由 peer 重置  
errno.ENOBUFS无可用缓冲空间  
errno.EISCONN Transport endpoint is already connected  
errno.ENOTCONN Transport endpoint is not connected  
errno.ESHUTDOWN Cannot send after transport endpoint shutdown  
errno.ETOOMANYREFS 引用过多: cannot splice  
errno.ETIMEDOUT 连接超时  
errno.ECONNREFUSED 拒绝连接  
errno.EHOSTDOWN 主机宕机  
errno.EHOSTUNREACH 没有到达主机的路由  
errno.EALREADY 操作已经进行  
errno.EINPROGRESS 操作现在进行    
errno.ESTALE Stale NFS file handle  
errno.EUCLEAN 结构体需要清洗   
errno.ENOTNAM 不是一个 XENIX具名文件  
errno.ENAVAIL 没有 XENIX 信号量可用  
errno.EISNAM 是一个具名文件  
errno.EREMOTEIO 远程 I/O 错误
errno.EDQUOT 超过限额

使用示例

try:
    os.makedirs("/root/hello/world/")
except OSError as err:
    if err.errno != errno.EEXIST:
        raise Exception("Unknown error.")

参考:
https://www.cnblogs.com/madsnotes/articles/5688008.html

转载于:https://www.cnblogs.com/Oliver-yzx/p/11310829.html

你可能感兴趣的:(python)