2010-06-01 16 views
11

Sto utilizzando un ambiente Mac OS X e sono abituato a usare ~/per fornire l'accesso alla directory dell'utente corrente.Accesso al percorso relativo in Python

Ad esempio, nel mio script python che sto solo cercando di utilizzare

os.chdir("/Users/aaron/Desktop/testdir/") 

ma vorrei utilizzare

os.chdir("~/Desktop/testdir/") 

sto ricevendo un no such file or directory errore quando si cerca per eseguire questo. Qualche idea?

risposta

15

Avrete bisogno di usare os.path.expanduser(path)

os.chdir("~/Desktop/testdir/") è alla ricerca di una directory chiamata "~" nella directory di lavoro corrente.

Anche prestare attenzione alla documentazione di quella funzione - specificamente che avrete bisogno della variabile $HOME ambiente impostato correttamente per assicurare che l'espansione avviene. Il più delle volte questo non sarà un problema, ma se l'espansione non ha luogo, questa è la probabile ragione.

+0

Non sapevo di quello! +1 –

+1

Molto interessante, come posso usarlo correttamente? Il "percorso" dovrebbe essere "/ Desktop/testdir"? E come faccio a cambiare in quella directory. Grazie mille. – Aaron

+0

Basta annidarlo all'interno della tua chiamata chdir esistente in questo modo: os.chdir (os.path.expanduser ("~/...")) –

2

Da http://docs.python.org/library/os.path.html

os.path.expanduser(path) 

si espanderà ~ ad essere la directory home se è definito.

+0

Ho provato os.path.expanduser ("/ Desktop/testdir") e non mi sta dicendo alcun file o directory di questo tipo: '/ Desktop/test /' Sai cosa potrei fare male? In definitiva mi piacerebbe chdir ~/Desktop/testdir – Aaron

+0

os.path.expanduser ("~/Desktop/testdir") è ciò di cui avresti bisogno, come diceva Dan Head, questo si basa sulla definizione di $ HOME. – Tyler

Problemi correlati