Python 引发 NotADirectoryError

Bol*_*ain 5 python exception os.path

在打开该目录中的文件之前,我试图在目录不存在时引发错误。根据这个回复,我应该为我的问题使用最具体的 Exception 构造函数,我认为是NotADirectoryError. 但是运行下面的代码我得到NameError: global name 'NotADirectoryError' is not defined. 在此先感谢您的帮助!

import os
if not os.path.isdir(baselineDir):
  raise NotADirectoryError("No results directory for baseline.")
Run Code Online (Sandbox Code Playgroud)

如果有更好的方法来做到这一点,请提出建议,谢谢。

Mat*_*DMo 4

您可能使用的是 Python 2,它没有定义NotADirectoryError. 然而,这在 Python 3 中定义的,正是出于您尝试使用它的目的。

如果您需要使用 Python 2,则需要通过类自行定义错误。阅读有关用户定义异常的文档,了解如何对Exception类进行子类化并根据您自己的需要进行自定义(如有必要)。这是一个非常简单的例子:

class NotADirectoryError(Exception):
    pass
Run Code Online (Sandbox Code Playgroud)

这将获取传递给它的字符串并将其打印出来,就像您想要的那样。