2012-10-15 19 views
5

Bir dosya var a.py.Belirli bir dosyanın üst dizini alın

Adres /home/user/projects/project1/xxx/a.py.

os.getcwd() numaralı telefonu ararsam, /home/user/projects/project1/xxx/ verir. Ama ben /home/user/projects/project1'a ulaşmak istiyorum. Bunu Python'da nasıl yapabilirim?

Düzeltme: Daha açık olmalıyım. Bunu Django projem için istiyorum.

benim settings.py Bu kodları kullanın:

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

sonra benim statik dosya klasörü olduğu belirtmek için fallowing kodu kullanabilirsiniz. : /home/user/projects/project1/xxx/settings.py

benim statik dosya klasörü settings.py aynı Dir altındadır: altında

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

benim settings.py dosyasıdır.

şimdi ben de settings.py

nokta nokta (..) üst temsil

cevap

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

teşekkür ederim o kodla ne yapması gerektiğini /home/user/projects/project1

bu klasörü taşımak istediğiniz dizin. Göreceli yol adları geçerli dizinde başlayan bir yolu belirtir.

os.chdir belgelerine bakın.

+0

yerine '' ..'' ait os.pardir'' kullanmayı düşünün. * Çoğu * sistemde, onlar aynı şey olacaklar, ama sanırım farklı oldukları bir iki belirsiz sistem olabilir. – mgilson

13
from os.path import dirname 

print(dirname(dirname(__file__))) 

dirname numaralı telefonu aradığınızda her zaman üst dizin verir. Gerektiği kadar çok kez arayın.

Alternatif aşağıdakileri yapabilirsiniz:

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

'' .. '' kodlaması yerine, 'os.pardir' kullanmayı düşünün. – mgilson

İlgili konular