为什么python有os.path.curdir

为什么python有os.path.curdir,python,Python,os.path.curdir返回“.”,这是完全真实和毫无价值的。要从中获得任何有用的信息,必须使用os.path.abspath(os.path.curdir) 为什么在os.path模块中包含一个无用的变量?为什么不让os.path.curdir成为一个为您创建os.path.abspath的函数 os.path.curdir的存在有什么历史原因吗 也许无用是有点苛刻,但不是很有用似乎无力形容这一点。 它是一个常量,就像os.path.sep一样 POSIX和Windows以外的平台可以使用

os.path.curdir
返回“.”,这是完全真实和毫无价值的。要从中获得任何有用的信息,必须使用
os.path.abspath(os.path.curdir)

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

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

也许无用是有点苛刻,但不是很有用似乎无力形容这一点。

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

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

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

改用,
os.path.abspath()。以下是
abspath()
的POSIX实现:


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

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


<> >您可以考虑使用.< /p> < p> >代码> OS.PATH .Curdir < /C> > Linux > Windows和OS X >代码> >“但是,<代码>”:“旧的Mac OS 9系统”< /代码>。Python已经存在了足够长的时间,这曾经很重要

你想要
os.getcwd()
而不是
os.path.abspath(os.path.curdir)
。你可以用它来简化代码的输出,比如os.walk(os.curdir)中的
for(root,dir,files):
是的,我忘了有些操作系统没有“.”作为curdir。谢谢
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)