29

os.path.curdir返回“。” 这是完全真实的,完全没有价值的。要从中获得任何有用的东西,你必须用os.path.abspath(os.path.curdir)

为什么在 os.path 模块中包含一个无用的变量?为什么不让 os.path.curdir 成为为您执行 os.path.abspath 的函数?

存在有什么历史原因os.path.curdir吗?

或许useless有点刺耳,但不是很有用似乎无力形容这一点。 在此处输入图像描述

4

3 回答 3

49

它是一个常数,就像os.path.sep.

POSIX 和 Windows 以外的平台可以使用不同的值来表示“当前目录”。@例如,在 Risc OS上,在旧的 Macintosh OS 上,它是:.

该值在整个标准库中使用以保持与平台无关。

改为使用os.getcwd()os.path.abspath()无论如何,使用该功能在引擎盖下os.path.curdir变成当前工作目录。这是 POSIX 的实现abspath()

def abspath(path):
    """Return an absolute path."""
    if not isabs(path):
        if isinstance(path, _unicode):
            cwd = os.getcwdu()
        else:
            cwd = os.getcwd()
        path = join(cwd, path)
    return normpath(path)
于 2013-01-24T22:38:10.087 回答
9

的值os.path.curdir适用"."于 Linux、Windows 和 OS X。但是,它适用":"于旧的 Mac OS 9 系统。Python 已经存在了足够长的时间,这曾经很重要。

于 2013-01-24T22:40:41.850 回答
8

它只是一个恒定的、依赖于平台的值。从文档(值得一读):

操作系统用来引用当前目录的常量字符串。这适用'.'于 Windows 和 POSIX。也可通过os.path.

您可以考虑os.getcwd()改用。

于 2013-01-24T22:39:33.100 回答