在python中获取文件夹的正确路径

dam*_*mon 1 python path

我有一个目录结构如下

/home/damon/dev/python/misc/path/
                                /project/mycode.py
                                /app/templates/
Run Code Online (Sandbox Code Playgroud)

我需要从mycode.py获取模板文件夹的绝对路径

我试着写mycode.py

import os

if __name__=='__main__':
    PRJ_FLDR=os.path.dirname(os.path.abspath(__file__))
    print 'PRJ_FLDR=',PRJ_FLDR
    apptemplates = os.path.join(PRJ_FLDR,'../app/templates')
    print 'apptemplates=',apptemplates
Run Code Online (Sandbox Code Playgroud)

我希望apptemplates是

/home/damon/dev/python/misc/path/app/templates
Run Code Online (Sandbox Code Playgroud)

但我越来越

/home/damon/dev/python/misc/path/project/../app/templates
Run Code Online (Sandbox Code Playgroud)

如何获得正确的路径?

Col*_*nic 5

这条道路正确的,试试吧。但是,如果您想删除多余的“ project /../”部分,请使用os.path.normpath

os.path.normpath(path)

标准化路径名。这会使多余的分隔符和上级引用崩溃,从而使A // B,A / B /,A /./ B和A / foo /../ B都变为A / B。

http://docs.python.org/2/library/os.path.html#os.path.normpath