os.path.expanduser(“〜/ x”)是否等同于os.path.abspath(os.path.expanduser(“〜/ x”))?

时间:2014-01-23 18:56:27

标签: python path cross-platform absolute-path

在Python中,如果路径中包含“〜”,我可以确定扩展的用户调用是绝对路径吗?

例如,这个表达式总是正确吗?

path = '~/.my_app'
os.path.expanduser(path) == os.path.abspath(os.path.expanduser(path))

1 个答案:

答案 0 :(得分:6)

这取决于您$HOME指向的内容。在大多数正确的设置系统(每个主流的Linux发行版,OSX和Windows)上,它将指向绝对路径,例如/home/userC:/Users/User。但是如果它未设置,手动设置不当甚至更改(export HOME=.),expanduser可能会产生相对路径,在这种情况下abspath会进一步改变它。

但是对于大多数意图和目的,你可以假设是,两个表达式都是等价的。