2012-10-15 12 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__)) 

その後、私は私の静的ファイルのフォルダがある場所を指定する休閑コードを使用しています。 :/home/user/projects/project1/xxx/settings.py

私の静的ファイルフォルダがsettings.pyと同じディレクトリの下にある:下

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

私のsettings.pyファイルです。

今私はsettings.py

答えて

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

ありがとうドットドット(..)が親を表しているコードで何をすべき/home/user/projects/project1

にこのフォルダを移動したいですディレクトリ。相対パス名は現在のディレクトリから始まるパスを指定するためです。

os.chdirの文書を参照してください。

+0

は..'' '' os.pardir'を使用しての代わりに考えてみましょう。 *ほとんどのシステムでは、それらは同じものになりますが、そこには1つか2つのあいまいなシステムがあるかもしれないと思います。 – mgilson

13
from os.path import dirname 

print(dirname(dirname(__file__))) 

dirnameに電話するたびに、親ディレクトリが表示されます。必要に応じて何度でも電話してください。

また、あなたが次の操作を行うことができます。

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

'' .. ''をハードコーディングするのではなく、代わりに' os.pardir'を使うことを検討してください。 – mgilson

関連する問題