在目录不存在之前,我试图在该目录中打开文件之前引发错误。根据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.")

如果有更好的方法,请建议,谢谢。

最佳答案

您可能正在使用Python 2,它没有定义NotADirectoryError。然而,这在Python 3中是is defined的,正是您试图使用它的目的。
如果需要使用Python 2,则需要通过类自己定义错误。阅读有关user-defined exceptions的文档,了解如何对Exception类进行子类化,并根据需要对其进行自定义。下面是一个非常简单的例子:

class NotADirectoryError(Exception):
    pass

这将把传递给它的字符串打印出来,就像你想要的那样。

10-01 23:06