2012-10-15 21 views
5

C'è un file a.py.Ottieni la directory principale di un file specifico

La posizione è /home/user/projects/project1/xxx/a.py.

Se chiamo os.getcwd(), mi dà /home/user/projects/project1/xxx/. Ma voglio raggiungere /home/user/projects/project1. Come posso farlo in Python?

Modifica: Penso di essere più chiaro. lo voglio per il mio progetto Django.

utilizzo questi codici nel mio settings.py:

PROJECT_PATH = os.path.abspath(os.path.dirname(__file__)) 

allora io uso il codice vuoto sanitario per specificare dove la mia cartella di file statico è. :

os.path.join(PROJECT_PATH,'statics'), 

mio file settings.py è sotto: /home/user/projects/project1/xxx/settings.py cartella di file statico

mia è sotto stessa directory come settings.py.

Ora voglio spostare questa cartella per /home/user/projects/project1

cosa devo fare con il codice che in settings.py

grazie

risposta

9
>>> import os 
>>> os.getcwd() 
'/tmp/test' 
>>> os.chdir('..') 
>>> os.getcwd() 
'/tmp' 
>>> 

Il punto punto (..) rappresenta il genitore directory. Poiché i nomi dei percorsi relativi specificano un percorso che inizia nella directory corrente.

Vedere la documentazione di os.chdir.

+0

considerare l'utilizzo di 'os.pardir' invece di'' ..''. Sui * più * sistemi, saranno la stessa cosa, ma suppongo che potrebbero esserci uno o due sistemi oscuri là fuori dove sono diversi. – mgilson

13
from os.path import dirname 

print(dirname(dirname(__file__))) 

Ogni volta che si chiama dirname fornisce la directory principale. Chiama il numero di volte necessario.

In alternativa si può fare seguente:

normpath(join(path1, '..', '..')) 
+5

Invece di hardcoding ''..'', considera invece l'uso di 'os.pardir'. – mgilson

Problemi correlati