簡體   English   中英

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

[英]How do I use '~' (tilde) in the context of paths?

我是 web 應用程序開發菜鳥。 我有一個 function 可以打開一個文件並讀取它。 不幸的是,測試服務器和生產服務器之間的目錄結構不同。 有人告訴我“使用相對於〜的路徑”。 但是,我無法在“~”上找到任何資源!

如何在路徑的上下文中使用波浪號?

編輯:這是在 Python 中。 我使用os.path.expanduser('~/path/in/home/area')解決了這個問題。

它是UNIX中的$HOME var,通常是/home/username

“你的家”意味着正在執行像cd ~/MyDocuments/這樣的命令的用戶的家是cd /home/user_executing_cd_commnd/MyDocuments

除非您正在編寫shell腳本或使用其他語言知道將$HOME的值替換為~ ,否則文件路徑中的波形符號沒有特殊含義,將被視為任何其他非特殊字符。

如果您正在編寫shell腳本,則shell不會解釋tildes,除非它們作為參數中的第一個字符出現。 換句話說, ~/file將成為/path/to/users/home/directory/file ,但./~/file將字面解釋(即,“一個名為file中的子目錄.~ ”)。

在URL中使用,將波浪號解釋為用戶主目錄的簡寫(例如, http://www.foo.org/~bobhttp://www.foo.org/~bob )是從Unix借用的約定。 實現完全是服務器特定的,因此您需要檢查Web服務器的文檔,看它是否有任何特殊含義。

如果您使用pathlib作為文件名,那么您可以在Windows和Linux上使用(我來這里是為了獲得Windows答案):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM