2012-10-15 160 views
5

有一個文件a.py獲取特定文件的父目錄

的位置是/home/user/projects/project1/xxx/a.py

如果我叫os.getcwd(),它給了我/home/user/projects/project1/xxx/。但我想要達到/home/user/projects/project1。我如何在Python中做到這一點?

編輯:我想我一定要更加明確。我想爲我的Django項目。

我在settings.py使用這些代碼:

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

然後我使用休耕代碼來指定我的靜態文件文件夾。 :

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

我的settings.py文件是下:/home/user/projects/project1/xxx/settings.py

我的靜態文件夾下的是同一目錄爲settings.py

現在我想將這個文件夾移動到/home/user/projects/project1

我應該怎麼做代碼在settings.py

謝謝

回答

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

的點點(..)表示父目錄。因爲相對路徑名稱指定了從當前目錄開始的路徑。

os.chdir的文檔。

+0

考慮使用'os.pardir',而不是'」 ..''。在*大多數*系統中,它們將是同一件事,但我想可能會有一兩個模糊不清的系統。 – mgilson

13
from os.path import dirname 

print(dirname(dirname(__file__))) 

每次你打電話給dirname它都會給你父目錄。根據需要多次撥打電話。

或者你可以做到以下幾點:

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

而不是硬編碼''..'',請考慮使用'os.pardir'來代替。 – mgilson