os.path.expanduser("~/x") 和 os.path.abspath(os.path.expanduser("~/x")) 是否等价?

6
在Python中,如果路径包含“~”,我能确定扩展的用户调用将是绝对路径吗?
例如,这个表达式总是正确的吗?
path = '~/.my_app'
os.path.expanduser(path) == os.path.abspath(os.path.expanduser(path))
1个回答

6
它取决于您的$HOME指向什么。在大多数正确设置的系统上(每个主流Linux发行版、OSX和Windows),它将指向绝对路径,例如/home/user或C:/Users/User。但是,如果未设置、设置不正确甚至手动更改(export HOME=.),expanduser可能会导致相对路径,在这种情况下,abspath将进一步更改它。
但是对于大多数意图和目的而言,您可以假设这两个表达式是等效的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接