我试图在目录不存在时引发错误,然后再打开该目录中的文件。根据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
。然而,这is defined在 Python 3 中,正是为了您尝试使用它的目的。
如果您需要使用 Python 2,则需要通过类自行定义错误。通读有关 user-defined exceptions 的文档了解如何子类化 Exception
类并在必要时根据您自己的需要对其进行自定义。这是一个非常简单的例子:
class NotADirectoryError(Exception):
pass
这将获取传递给它的字符串并将其打印出来,就像您想要的那样。
关于Python 引发 NotADirectoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135436/