如何在路径的上下文中使用“~”(波浪号)?

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 中相对路径的 ../../ 中?

如何在 Wildfly 中定义上下文路径?

如何在 Spring Boot 应用程序中添加两个上下文路径

鼠标上下滑动网页上的内容像波浪一样翻滚是神马原因导致的?我想要调回网页随着鼠标静静的流动,请求各位

如何在 angular2 路由中正确设置应用程序上下文路径?

如何在不包含上下文根名称的情况下使用相对路径?