标记 EnvironmentError 操作系统错误的基类 (注意:在Python 3中已被拆分为OSError) IOError 输入/输出操作失败 (注意:在Python 3中已被OSError取代...程序的输出将是: 捕获到 OSError 异常: [Errno 2] No such file or directory: 'nonexistent_file.txt' 这里的 [Errno 2] 是一个错误码...IOError 在Python中,IOError 异常是Python 2中的一个异常类,用于表示输入/输出操作失败时引发的错误。...然而,从Python3开始,IOError 已经被合并到 OSError 类中,因此,在Python 3及更高版本中,你应该使用 OSError来处理输入/输出相关的错误。...程序的输出将是: 捕获到 OSError 异常: [Errno 2] No such file or directory: 'nonexistent_file.txt' 这里的 [Errno 2] 是一个错误码
前几天在 Mac 上安装 Scrapy,按照官方文档的步骤使用 pip 安装 scrapy 后报一个权限错误 OSError: [Errno 1] Operation not permitted: '/...var/folders/6t/h404bjcd5tb_4q86tpv_251rv_0h0j/T/pip-sYsqDS-uninstall/System/Library/Frameworks/Python.framework...使用此命令可以正常安装 Scrapy,安装完成之后运行 Scrapy,发现又报一个引用错误 ImportError: cannot import name xmlrpc_client,搜索之后发现解决办法是要手动删除机子上的...我们这里遇到的问题就是跟 SIP 有关,解决办法就是进入 Recovery 模式关闭它。...关闭的具体步骤是,重启 Mac,按住 cmd + R,等待进入 Recovery 界面,在 Recovery 界面唤出命令行,执行以下命令然后重启机器即可: csrutil disable
常见错误场景及解决方案 2.1 文件操作中的 Invalid argument 在处理文件时,Errno 22 最常见的原因是传递了非法的文件路径或模式。...22 错误,尤其是在使用 socket 或者自定义网络连接时。...该错误通常由以下几种情况触发: 非法的文件描述符:系统调用试图访问的文件描述符无效,可能是文件已经关闭或者描述符无效。...在调试时,可以通过以下步骤来快速找到问题根源: 检查输入参数:确保所有传递给函数的参数都在合法范围内。 测试不同环境:有时候,错误只在特定操作系统或文件系统上出现,尝试在其他环境下运行代码。...as e: logging.error(f"捕获到OSError: {e}") 5.
断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...当使用2元组创建此类型的异常时,第一个项目在实例的errno属性上可用(假定为错误编号),第二个项目可用于该 strerror属性(通常是关联的错误消息)。元组本身也可以在args属性上使用。...在执行期间,定期检查中断。当内置函数input()或raw_input()正在等待输入时,键入的中断也会引发此异常。...在用户定义的基类中,当抽象方法需要派生类覆盖该方法时,抽象方法应引发此异常。 异常OSError 这个异常来源于EnvironmentError。...例如,err.object[err.start:err.end]给出编解码器失败的特定无效输入。 encoding 引起错误的编码的名称。 reason 描述特定编解码器错误的字符串。
内置异常可以由解释器或内置函数生成。 错误发生时,Python中会引发一些内置的异常。...关闭生成器或协程时,将引发GeneratorExit异常。...在sys.modules中找不到None时,也会引发此错误。 exception IndexError 当引用的序列超出范围时,引发IndexError。...,包括I / O故障(例如“找不到文件”或“磁盘已满”错误)时,将引发OSError异常。...在import语句中或在调用内置函数exec()或eval()时,或在读取初始脚本或标准输入时,可能会发生语法错误。
异常 描述:异常一般在ide无法直接检测出来,在我们执行到代码语句时,若有异常则会自动抛出 内置异常 BaseException 所有内置异常的基类 需要自定义异常类的时候不能继承它 Exception...的子类 AssertionError:assert断言失败时引发 AttributeError:属性引用(如: 实例对象.方法 )失败或赋值失败(如: 对象=值 ) ImportError:加载模块失败时引发...;是ImportError的子类 IndexError:取序列索引超出范围 KeyError:在字典中找不到指定的Key TypeError:当一个操作或函数被应用于类型不适当的对象时将被引发,传入参数的类型错误...:解码错误 OSError:调用操作系统函数时报错引发该异常,一般是I/O操作 OS 异常 以下所有异常都是OSError的子类 FileExistsError:文件已存在(如:创建一个文件) FileNotFoundError...# 其他异常 Unexpected error: 知识点 最后一个 不指定异常类时,可以作为通配符,若前面所有异常类都没有匹配上,则会自动匹配这个 except ,并执行里面代码,注意:最好要raise
断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块/对象失败 LookupError 无效数据查询的基类 IndexError 序列中没有此索引(index...若为False,则中断程序并调用默认的异常处理器,同时输出指定的提示信息。...在使用类文件的流对象时,都需要单独的调用close()来关闭资源。...with..as语句能够实现在with语句块执行完后,自动的关闭文件。如果with语句块中触发异常,会调用默认的异常处理器处理,而且文件仍然能够正常关闭。
errno_t错误码 return map_sys_errno_to_errno_t(errno); } // 5....,避免了NULL指针传入导致的崩溃;同时在每个失败分支都确保输出参数streamptr置为NULL,从源头消除野指针风险。...错误处理优先级:若关闭文件时返回错误(如缓冲区刷新失败),需优先处理数据丢失风险,再进行后续资源清理。...返回值:errno_t类型,0表示成功,非0表示失败。 使用场景:将标准输出重定向到日志文件(如调试时记录printf输出)、将标准输入重定向到配置文件(如批量读取配置参数)。...返回NULL/EOF标识失败;需通过errno获取错误原因,定位难度大 返回errno_t错误码;直接标识失败原因,可精确处理 安全性 低:传入NULL指针会导致未定义行为;无模式合法性校验 高:参数无效时返回错误
[这一步是可选的](译者注:这里指步骤5,因为守护程序不一定需要写文件) 6. 调用‘close()’关闭文件描述符0,1和2。...这样我们释放了从父进程继承的标 准输入,标准输出,和标准错误输出。我们没办法知道这些文描述符符可能 已经被重定向去哪里。...如果你认为有可能有打开的文件描 述符,你需要关闭它们,因为系统有一个同时打开文件数的限制。 7. 为标准输入,标准输出和标准错误输出建立新的文件描述符。...准确操作这些描述符是基于各自 爱好;比如说,如果你有一个日志文件,你可能希望把它作为标准输出和标 准错误输出打开,而把‘/dev/null’作为标准输入打开;作为替代方法...,你可 以将‘/dev/console’作为标准错误输出和/或标准输出打开,而‘/dev/null’作 为标准输入,或者任何其它对你的守护程序有意义的结合方法。
一、python异常 1、Python异常 python运行时发生错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成...、计算或者输出结果需要的过程无法执行等 Python异常是一个对象,表示错误或意外情况 在Python检测到一个错误时,将触发一个异常 Python可以通过异常传导机制传递一个异常对象,...发出一个异常情况出现的信号 程序员也可以在代码中手动触发异常 Python异常也可以理解为:程序出现了错误而在正常控制流以外采取的行为 第一阶段:解释器触发异常,此时当前程序流将被打断...,如关闭文件或断开服务器连接 等 finally中的所有代码执行完毕后会继续向上一层引发异常 语法 try: try_suite finally: finally_suite 3...UnicodeError 在Unicode的字符串之间进行转换时发生的错误 ValueError 应用于某个对象的操作或函数,这个对象具有正确的类型,但确有不适
}; 返回值 bind() 函数成功时返回 0,失败时返回 -1 并设置 errno 来指示错误。...如果绑定成功,输出成功信息;否则,输出错误信息。 关闭套接字。...如果连接请求的数量超过此值,则新的连接请求可能会被拒绝。 返回值 listen() 函数成功时返回 0,失败时返回 -1 并设置 errno 来指示错误。...返回值 accept() 函数成功时返回一个新的套接字描述符(非负整数),用于与客户端通信;失败时返回 -1 并设置 errno 来指示错误。...返回值 成功时返回发送的字节数,失败时返回 -1 并设置 errno。 九、close close() 函数用于关闭一个打开的文件描述符,这里包括套接字。关闭一个套接字会释放它占用的所有资源。
1 守护进程 1.1 守护进程 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行。...5、关闭不再需要的文件描述符。根据具体情况来定。...6、某些守护进程可以打开/dev/null使其具有文件描述符0、1、2,这使任何一个试图读标准输入、写标准输出或标准错误的库例程都不会产生任何效果。...============' #在调用daemon_init函数前是可以使用print到标准输出的,调用之后就要用把提示信息通过stdout发送到日志系统中了 daemon_init('/dev/...tmp/daemon_error.log会记录错误运行日志,在/tmp/daemon_stdout.log会记录标准输出日志。
此外还有异常链,若未处理的异常发生在 except 部分内,它将会有被处理的异常附加到它上面,并包括在错误信息中,为了表明一个异常是另一个异常的直接后果, raise 语句允许一个可选的 from 子句...5.内置异常 描述: 在 Python 中,所有异常必须为一个派生自 BaseException 的类的实例。...├── AttributeError # 当属性引用 (参见 属性引用) 或赋值失败时将被引发。...│ └── UnboundLocalError ├── OSError # 系统函数返回系统相关的错误时将被引发,此类错误包括 I/O 操作失败例如 "文件未找到" 或...│ └── IndentationError │ └── TabError ├── SystemError # 当解释器发现内部错误,但情况看起来尚未严重到要放弃所有希望时将被引发
4、重定向孙子进程的标准输入流,标准输出流,标准错误到/dev/null #!...tmp/daemon_error.log会记录错误运行日志 # 在/tmp/daemon_stdout.log会记录标准输出日志。...2.修改子进程的工作目录 子进程在创建的时候会继承父进程的工作目录,如果执行的程序是在U盘里面,就会导致U盘不能卸载。...4.修改umask 由于umask会屏蔽权限,所有设定为0,这样可以避免读写文件时碰到权限问题 5.fork孙子进程,子进程退出 经过上面几个步骤后,子进程会成为新的进程组老大,可以重新申请打开终端,为了避免这个问题...,fork孙子进程处理, 6.重定向孙子进程的标准输入流,标准输出流,标准错误流到/dev/null 因为是守护进程,本身已经脱离了终端,那么标准输入流,标准输入流,标准错误流就没有什么意义了,所以都转向到
成功返回0;失败则返回-1,并设置了全局变量errno,应该处理connect函数返回的错误码。...失败时返回的错误码: 错误码 含义 EACCES,EPERM 用户在未启用套接字广播标志的情况下尝试连接到广播地址,或者由于本地防火墙规则,连接请求失败。 EADDRINUSE 本地地址已在使用中。...例如,在尝试将UNIX域数据报套接字连接到流套接字时,可能会发生此错误。 ETIMEDOUT 尝试连接时超时。服务器可能太忙,无法接受新连接。...成功返回0;失败则返回-1,并设置了全局变量errno。 失败错误码: 错误码 含义 EBADF fd不是有效的打开文件描述符。 EINTR close()调用被信号中断 EIO 发生I/O错误。...;失败则返回-1,并设置errno以指示错误。
Scrapy的Request和Response对象用于爬网网站,在介绍Scrapy框架原理之前先具体讲解下Request和Response对象。...通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序,如下图15-1所示。 ?...10、dont_filter(boolean类型) 表示此请求不应由调度程序过滤。当您想要多次执行相同的请求时忽略重复过滤器时使用。小心使用它,或者你会进入爬行循环。默认为False。...11、errback(callable类型) 如果在处理请求时引发任何异常,将调用的函数。这包括失败的404 HTTP错误等页面。它接收一个Twisted Failure实例作为第一个参数。...xpath(query) 使用XPath选择器在Response中提取数据,更多内容访问爬虫课程(八)|豆瓣:十分钟学会使用XPath选择器提取需要的元素值 css(query) 使用CSS选择器在
# 属性引用或赋值失败 +-- BufferError # 无法执行与缓冲区相关的操作时引发 +-- EOFError # 当input()函数在没有读取任何数据的情况下达到文件结束条件...# 与连接相关的异常的基类 | | +-- BrokenPipeError # 另一端关闭时尝试写入管道或试图在已关闭写入的套接字上写入 | | +...| +-- ConnectTimeout(+-- Timeout) # (双重继承,下同)尝试连接到远程服务器时请求超时,产生此错误的请求可以安全地重试。...(+-- TypeError) # 此响应的内容已被使用 +-- RetryError # 自定义重试逻辑失败 +-- UnrewindableBodyError # 尝试倒回正文时...下面创建了一个MyError类,基类为Exception,用于在异常触发时输出更多的信息。
返回:成功=0;失败=-1,errno=错误号。...返回:成功=0;失败=-1,errno=错误号。...返回:成功=0;失败=-1,errno=错误号。...错误发生时返回一个-1并且设置相应的errno值。...可以设为下列值: ·0-------不允许继续接收数据 ·1-------不允许继续发送数据 ·2-------不允许继续发送和接收数据,均为允许则调用close () shutdown在操作成功时返回
四、返回值 成功时,listen函数返回0。 失败时,返回-1,并设置errno以指示错误原因。...四、返回值 成功时,accept函数返回一个新的套接字文件描述符,该描述符用于与连接的客户端进行通信。 失败时,返回-1,并设置errno以指示错误原因。...noclose:如果此参数为0,则daemon函数会将标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)重定向到/dev/null。...这意味着守护进程不会接收任何输入,其输出和错误也不会显示在终端或任何文件中。 三、返回值 成功时,daemon函数返回0。 失败时,返回-1,并设置errno以指示错误原因。...将标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)重定向到/dev/null。这意味着不会接收任何输入,其输出和错误也不会显示在终端或任何文件中。
若创建失败(如资源不足、权限问题),则返回 -1,并设置全局变量 errno 以指示具体错误代码。返回值 :成功:返回一个新的文件描述符(非负整数)。失败:返回 -1,并设置 errno。...返回值 :成功返回 0;失败返回 -1,并设置 errno。常见错误包括 EADDRINUSE(地址已在使用)、EACCES(权限不足)、EINVAL(sockfd 无效或已绑定)。...当此队列满时,内核可能会拒绝新的已完成握手的连接(例如,不响应 ACK,或发送 RST)。返回值 :成功返回 0;失败返回 -1,并设置 errno。...); // 服务器最终关闭时,关闭监听套接字 close(server_fd);上述示例仅能处理一次连接。...失败:返回 -1,并设置 errno。使用 select() 的服务器模式 :初始化监听套接字 (socket, bind, listen)。