用户输入路径,因此在Unix中,他/她可以输入~/../../~
。我希望Python将其转换为绝对路径。怎么做? os.path.expanduser()
只能扩展第一个~
,但不能扩展以下~
所以你只能获得os.path.expanduser(~/../../~)
= /Users/somebody/../../~
谢谢
这就是波浪扩张应该起作用的方式。即使是外壳也不会扩大第二个~
;波浪扩展仅发生在路径的前面。参见POSIX spec或bash manual。
os.path.expanduser
很好。
见user2357112的答案;他们绝不是错的。但是,如果你真的坚持这样做:
import os
path = '~/foo/bar/~'
home_path = os.path.expanduser('~')
path = path.replace("~", home_path.lstrip('/')