内容简介: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) 但是存在的问题是,你可能需要写大量的逻辑代码去处理这种情况,这样功能代码可能只占极小的一部分,导致代码要实现的功能不清晰。通过异常处理机制就不存在这个问题,代码要实现的功能一目了然。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Cracking the Coding Interview
Gayle Laakmann McDowell / CareerCup / 2015-7-1 / USD 39.95
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hund......一起来看看 《Cracking the Coding Interview》 这本书的介绍吧!