Come faccio a usare '~' (tilde) nel contesto di percorsi?
Domanda
Sono un noob sviluppo di applicazioni web. Ho una funzione che apre un file e lo legge. Purtroppo, le strutture di directory tra i server di test e di produzione si differenziano. Mi è stato detto di "usare un percorso relativo a ~". Non sono stato in grado di trovare tutte le risorse sul '~', però!
Come si usa il carattere tilde nel contesto di percorsi?
EDIT: Questo è in Python. Ho risolto il problema, utilizzando os.path.expanduser ( '~ / percorso / in / home / zona') .
Soluzione
è il vostro var $HOME
in UNIX, che di solito è /home/username
.
"La tua casa", cioè la sede dell'utente che sta eseguendo un comando come cd ~/MyDocuments/
è cd /home/user_executing_cd_commnd/MyDocuments
Altri suggerimenti
A meno che non si sta scrivendo uno script di shell o utilizzando qualche altro linguaggio che sa sostituire il valore di $HOME
per ~
, tilde in percorsi di file non hanno alcun significato particolare e saranno trattati come qualsiasi altro carattere non-speciale.
Se si sta scrivendo uno script di shell, conchiglie non interpretano tilde a meno che non si verificano come primo carattere in un argomento. In altre parole, ~/file
diventerà /path/to/users/home/directory/file
, ma ./~/file
sarà interpretato letteralmente (cioè "un file denominato file
in una sottodirectory denominata .
~
").
Utilizzato negli URL, l'interpretazione della tilde come abbreviazione per la directory home di un utente (ad esempio, http://www.foo.org/~bob
) è una convenzione preso in prestito da Unix. L'implementazione è interamente su server specifico, in modo avresti bisogno di controllare la documentazione del server web per vedere se ha un significato speciale.
Se si utilizza pathlib per i nomi dei file, è possibile utilizzare sia su Windows e Linux (sono venuto qui per una risposta di Windows):
python
from pathlib import Path
p = Path('~').expanduser()
print(p)