首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python - 错误和异常

, FloatingPointError LookupError 映射序列所使用索引无效引发异常:IndexError、KeyError,都是继承该类 常见具体内置异常 均是Exception...;是ImportError子类 IndexError:取序列索引超出范围 KeyError:在字典中找不到指定Key TypeError:一个操作函数被应用于类型不适当对象将被引发,传入参数类型错误...:文件找不到(如:open一个文件) PermissionError:没有权限操作文件(如:写入内容到一个正在打开文件) IsADirectoryError:对目录进行文件操作(如:os.remove...") 执行结果 # 若找不到myfile.txt OS error: [Errno 2] No such file or directory: 'myfile.txt' # 若找到文件了,但里面包含字母...一下,否则不知道异常是什么 except 如果写 必须放在所有 except 后面 else 作用:try里面的代码没有异常就执行else里面的代码,可以理解成: try 里面写有可能发生异常代码块

1.2K20

python异常报错详解

异常BufferError 无法执行缓冲区相关操作引发。 异常LookupError 映射序列上使用索引无效引发异常基类:IndexError,KeyError。...使用2元组创建此类型异常,第一个项目在实例errno属性上可用(假定为错误编号),第二个项目可用于该 strerror属性(通常是关联错误消息)。元组本身也可以在args属性上使用。...该filename属性是None使用3个参数以外其他异常创建errno和strerror属性也None实例与其他大于23个参数创建。...异常EOFError 其中一个内置函数(input()raw_input())在没有读取任何数据情况下触发文件结束条件(EOF)引发。...异常IOError I / O操作(如print语句,内置 open()函数文件对象方法)因I / O相关原因(例如“未找到文件“磁盘已满”)而失败引发。

4.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

牛掰python与unix

print "hello pyyu" hello pyyu [root@py_unix ~]# echo "Hello pyyu" Hello pyyu IPython与Bash执行命令 Bash查看当前目录文件...: [Errno 2] No such file or directory python脚本运行 [root@py_unix home]# cat ls.py #!...subprocess模块仅仅是将可以使用代码文件加载进来。...也可以创建自己模块文件,拱以后重复使用,这与加载subprocess模块方法相同。IPython shell一个非常好优点就是可以对模块或者文件检查,查看其内部可用属性。   ...通常我们编写代码,会采用同时运行文本编辑器和python方式(稍后会有介绍,这实际上运行就是Ipython),通过交互式使用编辑器和shell,也就是在两者之间切换来完成程序编写。

56720

Python 3000字编程风格指南

而下面的代码,一旦从字典中获取不存在键,如果没有任何try保护,则程序直接中断在这里,表现出来现象就是app直接挂掉闪退,这显然非常不友好。...d = {'a': 1, 'b': [1, 2, 3]} val = d['c'] 再举一个try和except使用例子,如果目录已存在则触发OSError异常,并通过except捕获到然后在块里面做一些异常处理逻辑...= errno.EEXIST: raise # PermissionError 等异常 else: # path 目录已存在 以上这种使用try和except...举一个例子,如下try块里逻辑:出现某种情况修改磁盘csv文件某个值,这些逻辑都顺利完成,但是走到下面这句代码程序出现异常,进而被except捕获,然后做一些异常处理: try: if...= errno.EEXIST: raise # PermissionError 等异常 else: # path 目录已存在 使用LBYL来写就是如下这样

65210

课时33:异常处理:你不可能总是对2

2] No such file or directory: '我为什么是一个文档.txt' 显然这样用户体验很糟糕,因此可以这样修改: try: f = open("我为什么是一个文档....txt") print(f.read()) f.close() except OSError: print("文件打开过程出错啦") 上面的例子由于使用了大家习惯语言来表达错误信息...,用户体验当然会好很多: 文件打开过程出错啦 但是从程序员角度来看,导致OSError异常原因有很多(例如FileExistsError、FileNotFoundError等等),所以可能会更在意错误具体内容...OSError as reason: print("文件打开过程出错啦,错误原因是:" + str(reason)) 文件打开过程出错啦,错误原因是:[Errno 2] No such...此时python将直接跳转到except语句,也就是说,文件被打开了,但并没有执行关闭命令: try: f = open("我是一个不存在文档.txt") print(f.read

59330

Python守护进程daemon实现

1 守护进程 1.1 守护进程 守护进程是系统中生存期较长一种进程,常常在系统引导装入时启动,在系统关闭终止,没有控制终端,在后台运行。...至此,这个子进程作为新进程组组长,完全脱离了其他进程控制,并且没有控制终端。 4、将当前工作目录更改为根目录某一特定目录位置)。...6、某些守护进程可以打开/dev/null使其具有文件描述符0、1、2,这使任何一个试图读标准输入、写标准输出标准错误库例程都不会产生任何效果。...8、用日志系统记录出错信息    因为守护进程没有控制终端,进程出现错误时无法写入到标准输出上,可以通过调用syslog将出错信息写入到指定文件中。...os.setsid() '''防止在类似于临时挂载文件系统下运行,例如/mnt文件夹下,这样守护进程一旦运行,临时挂载文件系统就无法卸载了,这里我们推荐把当前工作目录切换到根目录下''' os.chdir

7.3K30

python和shell常用基本命令对应关系

,就可以直接使用chdir切换到刚才目录下面了。...,这个命令相当于shell中没有使用-p参数时候情况,如果该目录存在,则无法创建成功。...call last): File "", line 1, in OSError: [Errno 2] No such file or directory: '/tmp...如果你目录是个文件,就可以很方便拿到这个文件上级目录 os.path还有其他一些函数,例如: os.path.exists()方法可以判断当前目录是否存在, os.path.dirname...(n)方法,相当于shell中异常退出exit 1命令 在Python中,正常退出可以不用写代码,执行完毕退出时候,exit值就是0,遇到异常时候,就可以使用sys.exit(1)方法告诉程序当前执行过程中出现了问题

1.1K30

Python os模块文件操作(二)

,如果目录非空,则抛出一个OSError异常 os.rmdir("folder") except OSError as e: print(e) os.remove('folder/ccc.txt...os.rmdir(name)是删除指定文件夹,如果删除文件夹不是一个空文件夹,会报错,抛出OSError异常,如上面的folder中有ccc.txt文件,删除时报错了。...在传入path,最后也可以是一个文件这样会先递归创建目录,然后在最里层创建文件。...path最里层可以指定到文件(如果有文件的话)。 递归删除文件夹中有文件,如果path没有指定到文件,只指定到文件夹,删除会失败,文件夹里面为空才能删除成功。...os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])参数: top为指定目录路径,是一个文件夹。

83230

Python3 | 练气期,捕获错误异常 、自定义异常处理!

[as reaon]: 出现异常后执行代码 else: 没有异常发生,else中语句将会被执行 # 方式3.try - except - finally 语句 try:...检测代码块 except Exception [as reaon]: 出现异常后执行代码 else: 没有异常发生,else中语句将会被执行 finally: 无论怎么样都会被执行代码...│ └── ModuleNotFoundError ├── LookupError # 映射序列所使用索引无效引发异常 │ ├── IndexError...│ └── UnboundLocalError ├── OSError # 系统函数返回系统相关错误时将被引发,此类错误包括 I/O 操作失败例如 "文件未找到" ...├── TypeError # 一个操作函数被应用于类型不适当对象将被引发。

7610

使用os.walk提取压缩文件并避免递归提取

作为一名合格技术员,在要=使用os.walk来提取压缩文件并避免递归提取,我们可以在遍历文件检查文件扩展名,并且只处理压缩文件而非目录。...在以下代码中,extractRecursive 函数通过 os.walk 遍历指定路径下所有文件目录,并使用 magic 模块来识别文件类型。...遇到压缩文件,会调用 arcExtract 函数来解压该文件。但是,extractRecursive 函数在解压完成后还会再次调用自身,导致递归提取过多。...这样就可以避免递归提取过多,提高性能。使用os.walk提取压缩文件并避免递归提取并不难,只要你熟悉Python文件操作和zipfile模块基本用法。...os.walk提供了一种逐级遍历目录结构简单方法,而zipfile模块则可以用来处理压缩文件。主要挑战可能在于理解如何在遍历文件过滤出压缩文件,并且在解压缩避免递归提取。

15910

利用python socket管理服务器

),此时你建立文件默认权限是644(6-0,6-2,6-2),建立目录默认 权限是755(7-0,7-2,7-2),可以用ls -l验证一下哦 现在应该知道umask用途了,它是为了控制默认权限...,不要使默认文件目录具有全权而设 def createDaemon():     #脱离父进程     try:         pid = os.fork()         if pid >..._exit(1)     #修改当前工作目录     os.chdir('/')     #脱离终端     os.setsid()     #重设文件创建权限     os.umask(0)     ...supervisor就是用Python开发一套通用进程管理程序,能将一个普通命令行进程变为后台daemon,并监控进程状态,异常退出能自动重启。..._exit(1)     #修改当前工作目录     os.chdir('/')     #脱离终端     os.setsid()     #重设文件创建权限     os.umask(0)

91520

Python异常及处理方法总结

+-- AttributeError # 属性引用赋值失败 +-- BufferError # 无法执行与缓冲区相关操作引发 +-- EOFError # input...# 无法找到模块或在在sys.modules中找到None +-- LookupError # 映射序列上使用索引无效引发异常基类 | +-- IndexError...| +-- FileNotFoundError # 请求不存在文件目录 | +-- InterruptedError # 系统调用被输入信号中断...异常捕获 发生异常,我们就需要对异常进行捕获,然后进行相应处理。...如果所有的except都不匹配,则异常会传递到下一个调用本代码最高层try代码中。 2.4 异常else 如果判断完没有某些异常之后还想做其他事,就可以使用下面这样else语句。

2K40

Python之模块介绍

'\n' os.pathsep  输出用于分割文件路径字符串 >>> os.pathsep ':' os.name 输出字符串指示当前使用平台。...: [Errno 2] No such file or directory: 'zabbix' os.popen('command').read() : 获取命令结果,不带命令执行状态 >>> a=os.popen...,说明没有复制文件内容 shutil.copystate():  copy文件权限,最后访问时间、修改时间 先查看aaa、bbb文件最后访问时间和修改时间: ls -lu:查看文件最后访问时间...new 目录(new目录必须不存在,否则报错),目录文件也会拷贝,如果第三个参数是True,则复制保持目录符号链接,如果是False,则复制生成文件来替代符号链接 [root@localhost...() 解释:首先导入该模块;然后创建一个解析对象;然后向该对象中添加你要关注命令行参数和选项,每一个add_argument方法对应一个你要关注参数选项;最后调用parse_args()方法进行解析

66220

Python中os.system()、subprocess.run()、call()、check_output()用法

test.py-rw-r--r-- 1 foo foo 359 Feb 19 09:21 test.py <======== 只有名字包含 test 文件被列出2.subprocess.run...相当于把标准错误重定向到标准输入中) subprocess.DEVNULL: 用作 stdout, stderr 参数,相当于把输出内容重定向到 /dev/null 用户已经打开文件对象描述符...True ,args 参数会当做一条命令字符串(支持管道、重定向操作);它为 False ,args 需是一个列表(并且不支持管道、重定向操作)cwd: 指定执行命令目录,默认为当前目录timeout...异常text: 设置为 True ,stdin、stdout、stderr 会以“文本”模式打开(返回值对象中 stdout、stderr 存储文本内容),否则返回值对象中 stdout、stderr...4.subprocess.check_output()Python 3.5 以前版本,要想捕获命令输出内容,可以使用 subprocess.check_output() 方法,它原型如下:subprocess.check_output

59520

python中daemon守护进程实现方法

守护进程是生存期长一种进程。它们独立于控制终端并且周期性执行某种任务等待处理某些发生事件。他们常常在系统引导装入时启动,在系统关闭终止。...守护进程特性 1.在后台运行 2.与其运行前环境隔离开来。这些环境包括未关闭文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。...总之,除开这些特殊性以外,守护进程与普通进程基本上没有什么区别。因此,编写守护进程实际上是把一个普通进程按照上述守护进程特性改造成为守护进程。...守护进程编程规则 1.在后台运行,调用fork ,然后使父进程exit 2.脱离控制终端,登录会话和进程组,调用setsid()使进程成为会话组长 3.禁止进程重新打开控制终端 4.关闭打开文件描述符...    verbose 表示将启动运行过程中异常错误信息打印到终端,便于调试,建议非调试模式下关闭, 默认为1, 表示开启     save_path 表示守护进程pid文件绝对路径

77520

Python模块之subprocess用法实例详解

subprocess包中定义有数个创建子进程函数,这些函数分别以不同方式创建子进程,所欲我们可以根据需要来从中选取一个使用。...另外subprocess还提供了一些管理标准流(standard stream)和管道(pipe)工具,从而在进程间使用文本通信。...: [Errno 2] No such file or directory 4、subprocess.getstatusoutput() 接受字符串形式命令,返回 一个元组形式结果,第一个元素是命令执行状态...= subprocess.check_output("pwd") >>> res b'/root\n' # 结果以字节形式返回 四、subprocess.Popen() 其实以上subprocess使用方法...原来这个是一个管道,这个需要画一个图来解释一下: 4、poll() 定时检查命令有没有执行完毕,执行完毕后返回执行结果状态,没有执行完毕返回None >>> res = subprocess.Popen

24.9K32

Python 3.5 读写文件

在Python中读写文件不需要像Java.Net一样要另外导入io"包",可直接使用open方法 open() 返回一个文件对象,并且通常使用两个参数:open(filename, mode) >>...) r+:可读可写 一般情况下,文件是以文本模式被打开,这意味着,你可以指定编码文件进行读写,如果没有指定就默认使用平台编码(具体查看open()) 在文本模式中,读取文件被默认转换到平台指定换行符...\n(Unix:\n,Windows:\r\n) 在写模式中,\n被转换为平台指定换行符 对于文本文件修改还好,但是像JPEGEXE文件会被破坏,所以在使用二进制模式读写这类文件一定要小心。...在读写文件要考虑很多意外情况,如,没有找到要打开文件就会抛异常(r模式): >>> open('f.txt', 'r') Traceback (most recent call last):   ...File "", line 1, in  IOError: [Errno 2] No such file or directory: 'f.txt' 所以在读文件要对异常进行处理

35300

Python自动化运维之异常处理

Exception类,python解析器会自动将通用异常类型名称放在内建命名空间中,所以使用通用异常类型,不需要import exceptions模块。...这样就可以触发一个异常,并且接收异常信息。 3.2 传递异常 当你捕获到异常之后又希望再次触发异常只需要使用不带任何参数raise关键字。...try..except..else 注意:except子句数量没有限制,但使用多个except子句捕获异常,如果异常类之间具有继承关系,则子类应该写在前面,否则父类将会直接截获子类异常。...如果没有找到与异常匹配except子句(也可以不指定异常类型指定同样异常类型Exception,来捕获所有异常),异常被递交到上层try(若有try嵌套),甚至会逐层向上提交异常给程序(逐层上升直到能找到匹配...在使用文件流对象,都需要单独调用close()来关闭资源。

1K30
领券