关于文件的异常机制处理
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()