os.path.curdir
返回'。'这完全是真实的,完全没有价值。要从中获得任何有用的东西,你必须用os.path.abspath(os.path.curdir)
为什么在os.path模块中包含无用的变量?为什么不让os.path.curdir成为为你做os.path.abspath的函数?
os.path.curdir
存在一些历史原因吗?
答案 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已经存在很长时间了,以至于这一点很重要。