为什么python有os.path.curdir

boa*_*der 21 python

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

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

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

也许无用是有点苛刻,但不是很有用,似乎很难描述这一点. 在此输入图像描述

Mar*_*ers 34

这是一个常数,就像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)
Run Code Online (Sandbox Code Playgroud)


Die*_*Epp 7

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


cdh*_*wie 6

它只是一个与平台相关的恒定值.从文档(值得一读):

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

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