Python 引发 NotADirectoryError
Python raising NotADirectoryError
我试图在目录不存在时引发错误,然后再打开该目录中的文件。根据 this response,我应该为我的问题使用最具体的异常构造函数,我认为是 NotADirectoryError
。但是 运行 下面的代码我得到 NameError: global name 'NotADirectoryError' is not defined
。在此先感谢您的帮助!
import os
if not os.path.isdir(baselineDir):
raise NotADirectoryError("No results directory for baseline.")
如果有更好的方法请推荐,谢谢。
错误消息很清楚:NotADirectoryError
尚未定义。如果您正在尝试弥补自己的异常,@MattDMo 会告诉您如何去做。如果您想使用现有的异常,IOError
似乎最合适。
例外情况通常是 classes。您必须创建一个 NotADirectoryError class,它是某个东西的子 class,可能是 exceptions.OSError,因为在这种情况下 os 模块将引发这种情况。
如果知道异常属于哪个模块,则导入异常:
from my.exception.module import NotADirectoryError
如果没有,你必须定义这个class:
class NotADirectoryError(Exception):
pass
您可能正在使用 Python 2,它没有定义 NotADirectoryError
。但是,Python 3 中的 is defined,正是为了您尝试使用它的目的。
如果你需要使用Python2,你需要通过class自己定义错误。阅读有关 user-defined exceptions 的文档,了解如何对 Exception
class 进行子class,并在必要时根据自己的需要对其进行自定义。这是一个非常简单的例子:
class NotADirectoryError(Exception):
pass
这将获取传递给它的字符串并打印出来,就像你想要的那样。
我试图在目录不存在时引发错误,然后再打开该目录中的文件。根据 this response,我应该为我的问题使用最具体的异常构造函数,我认为是 NotADirectoryError
。但是 运行 下面的代码我得到 NameError: global name 'NotADirectoryError' is not defined
。在此先感谢您的帮助!
import os
if not os.path.isdir(baselineDir):
raise NotADirectoryError("No results directory for baseline.")
如果有更好的方法请推荐,谢谢。
错误消息很清楚:NotADirectoryError
尚未定义。如果您正在尝试弥补自己的异常,@MattDMo 会告诉您如何去做。如果您想使用现有的异常,IOError
似乎最合适。
例外情况通常是 classes。您必须创建一个 NotADirectoryError class,它是某个东西的子 class,可能是 exceptions.OSError,因为在这种情况下 os 模块将引发这种情况。
如果知道异常属于哪个模块,则导入异常:
from my.exception.module import NotADirectoryError
如果没有,你必须定义这个class:
class NotADirectoryError(Exception):
pass
您可能正在使用 Python 2,它没有定义 NotADirectoryError
。但是,Python 3 中的 is defined,正是为了您尝试使用它的目的。
如果你需要使用Python2,你需要通过class自己定义错误。阅读有关 user-defined exceptions 的文档,了解如何对 Exception
class 进行子class,并在必要时根据自己的需要对其进行自定义。这是一个非常简单的例子:
class NotADirectoryError(Exception):
pass
这将获取传递给它的字符串并打印出来,就像你想要的那样。