我正在尝试实现一个方法,只要某个目录不存在就会返回错误.
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 次 |
| 最近记录: |