在打开目录中的文件之前,我试图在目录不存在时引发错误。根据this response,对于我的问题,我应该使用最具体的Exception构造函数,我认为是NotADirectoryError
。但是运行下面的代码,我得到NameError: global name 'NotADirectoryError' is not defined
。在此先感谢您的帮助!
import os
if not os.path.isdir(baselineDir):
raise NotADirectoryError("No results directory for baseline.")
如果有更好的方法,请提出建议,谢谢。
python大神给出的解决方案
您可能正在使用未定义NotADirectoryError
的Python 2。但是,Python 3中的is defined正是出于您要使用它的目的。
如果需要使用Python 2,则需要通过一个类自己定义错误。通读有关user-defined exceptions的文档,以了解有关对Exception
类进行子类化和根据需要进行自定义的信息。这是一个非常简单的示例:
class NotADirectoryError(Exception):
pass
这将采用传递给它的字符串并将其打印出来,就像您想要的那样。