【问题标题】:Is os.path.expanduser("~/x") equivalent to os.path.abspath(os.path.expanduser("~/x"))?os.path.expanduser("~/x") 是否等同于 os.path.abspath(os.path.expanduser("~/x"))?
【发布时间】:2014-02-14 12:32:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: python path cross-platform absolute-path


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-15
      • 2012-04-02
      • 1970-01-01
      • 2014-07-16
      • 2013-12-11
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      相关资源
      最近更新 更多