为什么Python有os.path.curdir
3 个回答
9
os.path.curdir
的值在 Linux、Windows 和 OS X 系统上都是 "."
,也就是当前目录的意思。不过,在老版的 Mac OS 9 系统上,它的值是 ":"
。Python 发展了很长时间,这个区别以前是很重要的。
9
这只是一个常量,具体的值会根据不同的平台而不同。从文档(值得一读)中可以了解到:
这个常量字符串是操作系统用来表示当前目录的。在Windows和POSIX系统中,这个值是
'.'
。你也可以通过os.path
来获取。
你可以考虑使用os.getcwd()
来代替。
60
这其实是一个常量,就像 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)