【问题标题】:python parent directory [duplicate]python父目录[重复]
【发布时间】:2013-04-10 11:52:06
【问题描述】:

我想获取文件的父目录。 此代码不起作用:

projectRoot = os.path.dirname(os.pardir(os.path.abspath(__file__)))

怎么了?

(我正在开发一个 django 应用程序,并在我的应用程序的设置文件中使用此变量)

谢谢。

罗曼

【问题讨论】:

  • 查看 UniPath 模块,它可以很好地解决这个问题。
  • os.pardir 不是你想的那样:>>> os.pardir'..'

标签: python directory parent


【解决方案1】:

您可以使用..访问父目录

import os
os.path.join(os.path.dirname(__file__), os.pardir)

或者:

import os
split_limit = 1 if os.path.isdir(__file__) else 0
parent_dir = os.path.abspath(__file__).rsplit(os.path.sep, split_limit)[0]

【讨论】:

  • 我使用了您的第一个解决方案,效果很好!谢谢!
【解决方案2】:

就这么简单:

import os
def get_parent_dir(file_path):
    return os.path.dirname(file_path)

要获取正在运行的脚本的 file_path,您可以这样做:

import sys
file_path = sys.argv[0]

【讨论】:

  • os.path.dirname 似乎返回文件的绝对路径,而不是文件直接父目录的名称
【解决方案3】:

在我们的 django 项目中,我们使用下一个结构: 我们有 prodaction_settings.py,其中放置了 prodaction 服务器和所有变量的设置。在文件 settings.py 中的本地机器上

from os.path import dirname, abspath, join
TEST_DIR = dirname(abspath(__file__))
from production_settings import *

使用模板添加本地文件夹:

TEMPLATE_DIRS = (
    join(TEST_DIR, 'tmpl'), 
)

【讨论】:

    猜你喜欢
    • 2017-04-09
    • 2018-06-25
    • 2012-02-28
    • 2020-09-23
    • 1970-01-01
    • 2015-07-27
    • 2013-11-09
    • 2018-05-08
    • 1970-01-01
    相关资源
    最近更新 更多