如何处理 Python 路径中的双"~"?



用户输入路径,因此在Unix中,他/她可以输入~/../../~。我希望Python将其转换为一个绝对路径。如何做到这一点?os.path.expanduser()只能扩展第一个~,而不能扩展后面的~

所以你只会得到os.path.expanduser(~/../../~)=/Users/somebody/../../~

感谢

这就是波浪形展开的工作原理。即使是外壳也不会扩展第二个~;波浪形扩展只发生在路径的前面。请参阅POSIX规范或bash手册。

os.path.expanduser是好的。

请参阅user2357112的答案;他们决没有错。然而,如果你真的坚持这样做:

import os
path = '~/foo/bar/~'
home_path = os.path.expanduser('~')
path = path.replace("~", home_path.lstrip('/')

相关内容

  • 没有找到相关文章

最新更新