为什么python有os.path.curdir

时间:2013-01-24 22:35:22

标签: python

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

包装它

为什么在os.path模块中包含无用的变量?为什么不让os.path.curdir成为为你做os.path.abspath的函数?

os.path.curdir存在一些历史原因吗?

也许无用是有点苛刻,但不是很有用,似乎很难描述这一点。 enter image description here

3 个答案:

答案 0 :(得分:33)

这是一个常量,就像os.path.sep

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

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

使用os.getcwd()代替;无论如何,os.path.abspath()使用该功能将os.path.curdir转换为当前工作目录。以下是abspath()的POSIX实现:

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)

答案 1 :(得分:6)

这只是一个与平台相关的恒定值。来自the docs(值得一读):

  

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

获取

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

答案 2 :(得分:6)

Linux,Windows和OS X上os.path.curdir的值为"."。但是,在旧的Mac OS 9系统上,":"是{{1}}。 Python已经存在很长时间了,以至于这一点很重要。