Python 引发 NotADirectoryError

标签 python exception os.path

我试图在目录不存在时引发错误,然后再打开该目录中的文件。根据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/

相关文章:

python - 如何模拟sys.argv[1 :] on web based python

python - Python中的相对路径问题

authentication - 用于查找 x 是否在 Twitter 上关注 y 的 Python 代码。请使用更多 Pythonic 方式

java - Java 中的一般异常

python - 为什么正则表达式不捕获 'www.'

c++ - 单个 "throw;"语句有什么作用?

python - 是否有从 Python 的 OSError 获取信息的跨平台方式?

python - 为什么 os.path.normpath 不删除第一个//?

python - 使用 os.path 写入带有变量名的输出文件

python - os.path.abspath 与 os.path.dirname