在目录不存在之前,我试图在该目录中打开文件之前引发错误。根据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
这将把传递给它的字符串打印出来,就像你想要的那样。