一、文件异常
1、try... 一个 except 结构
2、try... 多个 except 结构
3、try...except...else 结 构
try...except...else 结构增加了“else 块”。如果 try 块中没有抛出异常,则执行 else 块。如果
try 块中抛出异常,则执行 except 块,不执行 else 块。
4、try...except...finally 结构
try...except...finally 结构中,finally 块无论是否发生异常都会被执行;通常用来释放 try 块中
申请的资源。
try:
a = input(" " 请输入一个被除数:" ")
b = input(" " 请输入一个除数:" ")
c = float(a)/float(b)
except BaseException as e:
print(e)
else:
print(c)
finally:
print(" " 我是 y finally 中的语句,无论发生异常与否,都执行!" ")
print(" " 程序结束!" ")
5、return 语句和异常处理问题
由于 return 有两种作用:结束方法运行、返回值。我们一般不把 return 放到异常处理结构
中,而是放到方法最后。
6、trackback 模块
import traceback
try:
print( "step1")
num = 1/0
except:
traceback.print_exc()
运行结果:
step1
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/mypro_exception/my01.py", line 7, in <module>
num = 1/0
ZeroDivisionError: division by zero
二、文本文件处理
1、write()/writelines()写入数据
write(a):把字符串 a 写入到文件中
writelines(b):把字符串列表写入文件中,不添加换行符
2、with 语句(上下文管理器)
with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能
确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场。
s = ["高淇\n","高老三\n","高老五\n"]
with open(r"d:\bb.txt","w") as f:
f.writelines(s)
3、文本文件的读取
文件的读取一般使用如下三个方法:
1. read([size])
从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。
读取到文件末尾,会返回空字符串。
2. readline()
读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。
3. readlines()
文本文件中,每一行作为一个字符串存入列表中,返回该列表
读取一个文件前 4 个字符
with open(r"bb","r",encoding="utf-8") as f:
print(f.read(4))
4、二进制文件的读取和写入
二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象,不过,我们需要指
定二进制模式,从而创建出二进制文件对象。例如:
f = open(r"d:\a.txt", 'wb') #可写的、重写模式的二进制文件对象
f = open(r"d:\a.txt", 'ab') #可写的、追加模式的二进制文件对象
f = open(r"d:\a.txt", 'rb') #可读的二进制文件对象
创建好二进制文件对象后,仍然可以使用 write()、read()实现文件的读写操作。
读取图片文件,实现文件的拷贝:
with open('aa.gif', 'rb') as f:
with open('aa_copy.gif', 'wb') as w:
for line in f.readlines():
w.write(line)
print('图片拷贝完成!')