我正在尝试实现一个方法,只要某个目录不存在就会返回错误.
raise OSError("Directory does not exist.")
但是,我想使用OSError中的builtint错误消息,而不是这样做OSError: [Errno 2] No such file or directory:
.这是因为我在方法调用的开头提高异常,而不是稍后(它将从python调用相同的消息,没有任何必要raise
).
有什么指针吗?(手动OSError("[Errno 2] No such file or directory: ")
除外)
unu*_*tbu 27
import os
try:
open('foo')
except IOError as err:
print(err)
print(err.args)
print(err.filename)
Run Code Online (Sandbox Code Playgroud)
产生
[Errno 2] No such file or directory: 'foo'
(2, 'No such file or directory')
foo
Run Code Online (Sandbox Code Playgroud)
所以,生成OSError
一个类似的消息使用
raise OSError(2, 'No such file or directory', 'foo')
Run Code Online (Sandbox Code Playgroud)
jco*_*ado 12
要获取给定错误代码的错误消息,您可能希望使用os.strerror
:
>>> os.strerror(2)
'No such file or directory'
Run Code Online (Sandbox Code Playgroud)
此外,您可能希望使用errno
模块对这些错误使用标准缩写:
>>> errno.ENOENT
2
>>> os.strerror(errno.ENOENT)
'No such file or directory'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12736 次 |
最近记录: |