在文件操作时,很多方法都会引起异常,比如打开文件、移动文件指针等,所以我要做异常处理
打开文件的异常
如果文件不存在 ,open()函数就会抛出FileNotFoundError异常,如下:
f=open('d:\\123.txt','r',encoding='UTF-8')
抛异常如下,给出错误码和详细的信息:
Traceback (most recent call last):
File "c:/Users/mym/Desktop/python/file_io.py", line 3, in <module>
f=open('c:/users/mym/desktop/11.txt','r')
FileNotFoundError: [Errno 2] No such file or directory: 'c:/users/mym/desktop/11.txt'
处理异常-try...finally语句
用try...finally...语句处理异常,如下:
try:
f=open('c:/users/mym/desktop/1.txt','r')
print(f.read())
finally:
if f!=None:
f.close()
注意:
用完文件后要及时关闭,所以要有finally语句,用于 关闭文件,因为finally语句 一定会执行
except语句
如果对异常对象做处理,比如打印异常信息,在上面基础上 加上except语句
f=None #为什么要有此行代码
try:
f=open('c:/users/mym/desktop/1.txt','r')
print(f.read())
except FileNotFoundError as fnfe:
print(fnfe)
finally:
if f!=None:
f.close()
总结
一般情况下,操作文件的异常处理中,必须 要有异常处理语句,以确保 及时关闭文件。但不一定用try...finally语句,后面还会讲到with语句