如何在Python路径中处理双“〜”?

问题描述 投票:-1回答:2

用户输入路径,因此在Unix中,他/她可以输入~/../../~。我希望Python将其转换为绝对路径。怎么做? os.path.expanduser()只能扩展第一个~,但不能扩展以下~

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

谢谢

python path
2个回答
1
投票

这就是波浪扩张应该起作用的方式。即使是外壳也不会扩大第二个~;波浪扩展仅发生在路径的前面。参见POSIX specbash manual

os.path.expanduser很好。


0
投票

见user2357112的答案;他们绝不是错的。但是,如果你真的坚持这样做:

import os

path = '~/foo/bar/~'
home_path = os.path.expanduser('~')

path = path.replace("~", home_path.lstrip('/')
© www.soinside.com 2019 - 2024. All rights reserved.