Python之异常机制与文件处理
python中的异常主要为代码运行过程中,遇到语法等错误,英文为Exception。我们可以在pyhon进行处理,异常也采用对象的方式来处理,可以让python不提示错误信息。python还可以对txt、csv等格式的文件进行读写操作,下面主要对这些进行介绍。
一.异常解决步骤
1.定位与处理
当发生异常时,python会报出相应的错误,可以从上到下查看错误发生的顺序;下面介绍try和except结构处理异常,try后面接发生错误的代码,except后捕捉并处理发生的异常:
try:
a = 3/0
except BaseException as e: #捕捉异常
print(e) #将错误打印出来
另一个结构就是try…多个except结构,该结构可以处理多种的错误:
try:
a=3/0
except ZeroDivisionError:
print("除数不能为0")
except TypeError: #判断是否为该错误类型
print("类型错误")
try…except…finally结构,finally块后面代码是无论是否发生异常都会被执行,用于是方法try块中申请的资源
try:
a=3/0
except ZeroDivisionError:
print("除数不能为0")
except TypeError:
print("类型错误")
finally:
print("无论是否报错,我都执行!!!")
return语句作用可以结束方法运行,其次就是返回值。放置位置一般是方法最后
def test():
try:
a=3/0
except ZeroDivisionError:
print("除数不能为0")
except TypeError:
print("类型错误")
finally:
print("无论是否报错,我都执行")
return "e" #放在最后
print(test())
2.常见异常种类
一般常见的种类主要有以下几种,由下表所示:
符号 | 含义 |
---|---|
SyntaxError | 语法错误 |
NameError | 访问没有申明变量 |
ZeroDivisionError | 除数为0的错误 |
ValueError | 数值错误 |
TypeError | 类型错误 |
AttributeError | 访问对象不存在的属性 |
IndexError | 索引越界异常 |
KeyError | 字典关键字不存在 |
二.with上下文管理
with上下文管理可以自动管理资源,可以在代码执行结束后还原原始未执行该代码的状态,常用于文件管理方面
with open("C:/Users/86198/Desktop/ww.txt") as f:
for line in f:
print(line)
traceback模块可以用来打印异常信息
import traceback
try:
a = 3/0
except:
traceback.print_exc() #打印异常信息
with open("C:/Users/86198/Desktop/ww.txt",