我正在学习python中的异常,我遇到了一些代码问题。以下代码是:
try:
txt = open("C:\\Users\\Draco\\OneDrive\\Documents\\textfile.txt","r")
try:
txt.write("This is a test. Normal service will shortly resume!")
finally:
print("Content written to file successfully. Have a nice day.")
txt.close()
except IOError:
print("Error: unable to write the file. Check permissions")
现在,当我执行代码时,我将以下两行: 内容写入文件成功。祝你今天愉快。 错误:无法写入文件。检查权限
我遇到的问题是因为错误,在这种情况下是" r"这应该是" w"我应该只收到消息错误:无法写入文件。检查权限。但我得到错误和成功消息,我不确定为什么
答案 0 :(得分:1)
我会一个一个地为你分解。
尝试阻止打开
try:
以读取权限打开文件。
txt = open("C:\\Users\\Draco\\OneDrive\\Documents\\textfile.txt","r")
尝试打开块,写入自己写入只读文件对象后发生异常。
try:
txt.write("This is a test. Normal service will shortly resume!")
由于你有一个内部的try块,嵌套的finally是第一个执行的块。
finally:
即使文件写入失败也会成功打印。
print("Content written to file successfully. Have a nice day.")
关闭文件,工作正常
txt.close()
异常处理程序,现在处理异常。
except IOError:
print("Error: unable to write the file. Check permissions")
答案 1 :(得分:0)
finally
always executes:
在离开try语句之前总是执行finally子句, 是否发生了例外。
您正在看到的过程:
txt = open(loc, 'r')
上出错,因为在舞台上它不是
写任何数据。txt.write
时,会出现错误并移至finally
,
由于上面给出的原因。IOError
,您还会看到该消息
在except
条款中定义。