提问人:boatcoder 提问时间:1/25/2013 最后编辑:Mona Jalalboatcoder 更新时间:6/15/2017 访问量:43940
为什么python有os.path.curdir
Why does python have os.path.curdir
问:
os.path.curdir
返回 '.',这是完全真实的,完全没有价值。要从中获得任何有用的东西,您必须将其包装起来os.path.abspath(os.path.curdir)
为什么要在 os.path 模块中包含一个无用的变量?为什么不让 os.path.curdir 成为为您执行 os.path.abspath 的函数呢?
存在有什么历史原因吗?os.path.curdir
答:
60赞
Martijn Pieters
1/25/2013
#1
它是一个常数,就像.os.path.sep
POSIX 和 Windows 以外的平台可以使用不同的值来表示“当前目录”。例如,在 Risc OS 上,它是 ,在旧的 Macintosh OS 上,它是 .@
:
该值在整个标准库中使用,以保持与平台无关。
请改用 os.getcwd();
无论如何,在后台使用该功能都会变成当前的工作目录。以下是 POSIX 的实现:os.path.abspath()
os.path.curdir
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)
评论
0赞
boatcoder
1/25/2013
是的,我忘记了某些操作系统没有“.”作为curdir。谢谢。
9赞
cdhowie
1/25/2013
#2
它只是一个恒定的、与平台相关的值。来自文档(值得一读):
操作系统用于引用当前目录的常量字符串。这适用于 Windows 和 POSIX。也可通过 .
'.'
os.path
您可以考虑改用 os.getcwd()。
9赞
Dietrich Epp
1/25/2013
#3
的值在 Linux、Windows 和 OS X 上。但是,它位于旧的 Mac OS 9 系统上。Python 已经存在了足够长的时间,这曾经很重要。os.path.curdir
"."
":"
评论
os.getcwd()
os.path.abspath(os.path.curdir)
for (root,dirs,files) in os.walk(os.curdir):