如何在路径上下文中使用'〜'(代字号)?

cap*_*ver 43 python path tilde

我是一个Web应用程序开发菜鸟.我有一个打开文件并读取它的函数.不幸的是,测试服务器和生产服务器之间的目录结构不同.我被告知"使用相对于〜的路径".但是,我无法在'〜'上找到任何资源!

如何在路径上下文中使用波形符?

编辑:这是在Python中.我使用os.path.expanduser()修复了问题.

die*_*rre 38

它是$HOMEUNIX中的var,通常是/home/username.

"你的家",意思是谁在执行命令的用户的家就像cd ~/MyDocuments/cd /home/user_executing_cd_commnd/MyDocuments


Blr*_*rfl 15

除非您正在编写shell脚本或使用其他知道替换$HOMEfor 的值的其他语言,否则~文件路径中的波浪号没有特殊含义,将被视为任何其他非特殊字符.

如果您正在编写shell脚本,则shell不会解释tildes,除非它们作为参数中的第一个字符出现.换句话说,~/file将成为/path/to/users/home/directory/file,但./~/file将按字面解释(即,"在被调用file的子目录中.调用的文件~").

在URL中使用,将代字号解释为用户主目录的简写(例如http://www.foo.org/~bob)是从Unix借用的约定.实现完全是服务器特定的,因此您需要检查Web服务器的文档,看它是否有任何特殊含义.


hum*_*um3 6

如果您使用 pathlib 作为文件名,那么您可以在 Windows 和 Linux 上使用(我来这里是为了 Windows 答案):

python from pathlib import Path p = Path('~').expanduser() print(p)