关于文件的异常机制处理

1比较下面两种,可以体会try...except的便利。
 
遇到IOError时可以跳过,并执行except IOError:里的内容。
try:
    fh = open("testfile11.txt", "r")
   fh.write("这是一个测试文件,用于测试异常!!")
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "内容写入文件成功"
    fh.close()
 
 
遇到IOError时无法跳过,程序报错。
fh = open("testfile11.txt", "r")
fh.write("这是一个测试文件,用于测试异常!!")
fh.close()
 
 
 
 
2比较下面两种,可以体会try...finally的作用。
 
遇到IOError时,最后还是可以执行fh.close()(可以通过手工修改文件内容并保存查看文件没有被占用)。
try:
    fh = open("C:/Users/11/Desktop/2.txt", "a")
   fh.write("这是一个测试文件,用于测试异常!!")
    print fh.read()
finally:
    fh.close()
 
     
遇到IOError时,无法执行fh.close()导致文件被占用(可以通过手工修改文件内容并保存查看文件被占用)。
fh = open("C:/Users/11/Desktop/2.txt", "a")
fh.write("这是一个测试文件,用于测试异常!!")
print fh.read()
fh.close()
 
 
 
3try...except和try...finally一般结合使用,跳过IOError,并能关闭文件。
try:
    fh = open("C:/Users/11/Desktop/2.txt", "a")
   fh.write("这是一个测试文件,用于测试异常!!")
    print fh.read()
except IOError:
    print "Error: 没有找到文件或读取文件失败"
else:
    print "读取文件成功"
finally:
   fh.close()
 
 
相当于是try以后不管哪种情况都要加一句fh.close()
try:
    fh = open("C:/Users/11/Desktop/2.txt", "a")
   fh.write("这是一个测试文件,用于测试异常!!")
    print fh.read()
except IOError:
    print "Error: 没有找到文件或读取文件失败"
    fh.close()
else:
    print "读取文件成功"
    fh.close()
 
 
原文地址:https://www.cnblogs.com/myshuzhimei/p/11757180.html