内容简介:Python笔记(四):异常处理机制与 open()
(一) 异常处理机制概述
就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python提供了这么一种机制,处理意外情况(就像如果中了5百万你希望代码怎么做一样)。
注:不处理这种意外情况,代码就会崩溃,后面全部代码都将停止运行。
实际应用中,主要分为3步:
(1) 圈出你认为可能出异常的代码。
(2) 设置你认为可以忽略的异常类型。
(3) 异常出现时,你希望的处理方式。
异常类型和格式可查看:http://www.runoob.com/python/python-exceptions.html
(二) open
- open() 函数用于打开一个文件,创建一个 file 对象
the_file = open(‘测试.txt’)
参数及方法可参考:http://www.runoob.com/python/python-func-open.html
模式 |
描述 |
r |
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ |
打开一个文件用于读写。文件指针将会放在文件的开头。 |
(三) 例子
(1) 新建一个文件 测试.txt,输入以下内容
张三:今天天气真好.
李四:是的,真的太好了。
张三:阳光明媚。
李四:鸟语花香。
王五:装逼现场:请带好安全帽
张三:难得好天气,今天就不偷懒了。
李四:能把乞讨说的这么高大上的也就只有你了。
分隔符
张三:难得好天气,今天就不偷懒了。
李四:能把乞讨说的这么高大上的也就只有你了。
(2) 使用open读取上面的文件,结合异常处理机制进行说明
try:
the_file = open( r'C:\Users\123456\Desktop\ 测试.txt' ,encoding= 'UTF-8' )
foreach_line in the_file:
try:
(role,line_spoken) = each_line.split( " :" ,1)
# 以:分割数据,参数1表示只分解为2部分。
例如:分割第一行数据,就是 role = ‘张三’ line_spoken = 今天天气真好.
# 不设置这个参数就是尽可能分割,那么读取 王五:装逼现场:请带好安全帽 数据时会出错
#分割“分隔符”这行数据时会出现ValueError异常(因为没有 :),不忽略这个错误后面全部数据都会不能读取
print(role,end= "" )print( " said" + ": " ,end= "" )
print(line_spoken,end= "" )
exceptValueError:
出现ValueError时,直接输出 each_line的值
print(each_line,end= "" )the_file.close()
exceptIOError:
找不到文件时提示文件不存在
print( " 文件不存在!" )(四) 事先处理可能出现的错误 和 错误出现后再处理2种方式
(1) 实际上我们也可以事先处理可能出现的错误,通过下面的代码实现。
if not each_line.find(':') == -1:
# find() 找不到目标字符串时会返回 -1 ,not 取反
else:
print(each_line,end="")
(2) 但是存在的问题是,你可能需要写大量的逻辑代码去处理这种情况,这样功能代码可能只占极小的一部分,导致代码要实现的功能不清晰。通过异常处理机制就不存在这个问题,代码要实现的功能一目了然。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
信息时代三部曲:经济、社会与文化
[美] 曼纽尔·卡斯特(Manuel Castells) / 夏铸九、王志弘 / 社会科学文献出版社 / 2003 / 33.00
《信息时代三部曲:经济、社会与文化》包括《网络社会的崛起》《认同的力量》《千年终结》,由英国Blackwell Publishers Ltd. 授权出版,据原书1997版和2000版译出。2001年和2006年版《网络社会的崛起》也使用了同一ISBN。一起来看看 《信息时代三部曲:经济、社会与文化》 这本书的介绍吧!