如何在路径的上下文中使用“~”(波浪号)?
Posted
技术标签:
【中文标题】如何在路径的上下文中使用“~”(波浪号)?【英文标题】:How do I use '~' (tilde) in the context of paths? 【发布时间】:2011-03-30 03:38:03 【问题描述】:我是 Web 应用程序开发新手。我有一个打开文件并读取它的函数。不幸的是,测试服务器和生产服务器之间的目录结构不同。有人告诉我“使用相对于〜的路径”。不过,我无法在“~”上找到任何资源!
如何在路径上下文中使用波浪号?
编辑:这是在 Python 中。我使用os.path.expanduser('~/path/in/home/area') 解决了这个问题。
【问题讨论】:
我可以想到两个完全正确但完全不同的答案,具体取决于您在 使用 进行的 Web 应用程序开发。事实上,到目前为止给出的完全不同的答案涵盖了这些,但没有人能确定哪个是正确的,或者它是否不是第三个。请编辑您的问题以包含所使用的技术。 你解决了这个问题~如果你发布一些示例代码会很好 【参考方案1】:它是您在 UNIX 中的 $HOME
var,通常是 /home/username
。
“你的家”表示执行cd ~/MyDocuments/
之类命令的用户的家是cd /home/user_executing_cd_commnd/MyDocuments
【讨论】:
~
指向您的$HOME
,可以是任何目录(即不一定是/home/username
)。【参考方案2】:
除非您正在编写 shell 脚本或使用其他知道将 $HOME
的值替换为 ~
的语言,否则文件路径中的波浪号没有特殊含义,将被视为任何其他非特殊字符.
如果您正在编写 shell 脚本,shell 不会解释波浪号,除非它们作为参数中的第一个字符出现。换句话说,~/file
将变为 /path/to/users/home/directory/file
,但 ./~/file
将按字面意思解释(即,“.
的子目录中名为 file
的文件名为 ~
”)。
在 URL 中,将波浪号解释为用户主目录的简写(例如,http://www.foo.org/~bob
)是从 Unix 借来的约定。实现完全是特定于服务器的,因此您需要检查您的 Web 服务器的文档,看看它是否有任何特殊含义。
【讨论】:
【参考方案3】:如果您使用 pathlib 作为文件名,那么您可以在 Windows 和 Linux 上使用(我来这里是为了获得 windows 的答案):
python
from pathlib import Path
p = Path('~').expanduser()
print(p)
【讨论】:
以上是关于如何在路径的上下文中使用“~”(波浪号)?的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有波浪号的相对路径渲染到 jquery/javascript 中相对路径的 ../../ 中?
如何在 Spring Boot 应用程序中添加两个上下文路径
鼠标上下滑动网页上的内容像波浪一样翻滚是神马原因导致的?我想要调回网页随着鼠标静静的流动,请求各位