在Python中,如果路径中包含“〜”,我可以确定扩展的用户调用将是绝对路径吗?
例如,此表达式是否始终为真?
path = '~/.my_app'
os.path.expanduser(path) == os.path.abspath(os.path.expanduser(path))
最佳答案
这取决于您的$HOME
指向什么。在大多数设置正确的系统上(每个主流Linux发行版,OSX和Windows),它都指向绝对路径,例如/home/user
或C:/Users/User
。但是,如果未设置,设置不当甚至手动更改了它(export HOME=.
),expanduser
可能会产生相对路径,在这种情况下abspath
会进一步更改它。
但是对于大多数意图和目的,您可以假定是的,两个表达式都是等效的。