2012-10-15 70 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