python - [Errno 2] No such file or directory: ’我為什么是一個(gè)文件,為什么返回值是這樣的呢?
問題描述
try:????f=open(’我為什么是一個(gè)文件.txt’)????print(f.read())????f.close()except?OSError?as?reason:????print(’文件出錯(cuò)了n錯(cuò)誤的原因是:’+str(reason))文件出錯(cuò)了錯(cuò)誤的原因是:[Errno?2]?No?such?file?or?directory:?’我為什么是一個(gè)文件
如果不加as reason返回的就是
try:????f=open(’我為什么是一個(gè)文件.txt’)????print(f.read())????f.close()except?OSError:??????????????????????#ose要大寫?才能有正確報(bào)錯(cuò)????print(’文件出錯(cuò)了’)文件出錯(cuò)了
問題解答
回答1:OSError是python內(nèi)置異常,python變量是區(qū)分大小寫的參見https://docs.python.org/2/lib...
另外文件不存在的話,你啥都不寫的話,只寫except也是會報(bào)錯(cuò)的
回答2:except OSError as reason => 捕獲OSError異常, 并且賦值給reason, 所以你在print(’文件出錯(cuò)了n錯(cuò)誤的原因是:’+str(reason)) 就將是觸發(fā)異常的原因拼接成一句完整的錯(cuò)誤 就是說執(zhí)行try 沒執(zhí)行成功的話就執(zhí)行except
回答3:這樣修改,這個(gè)是IOError
