是否有一种pythonic方法将文件名添加到绝对路径?

时间:2013-04-05 16:34:11

标签: python django

我使用sqlite3作为django的数据库。我现在正在学习,所以我想知道将文件名添加到现有路径的最佳方法。这个例子来自我的django settings.py文件:

BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))  # Creating base directory
DB_NAME = os.path.join(BASE_DIR, 'database')                                    # Adding database name
if os.sep != '/':                                                               # For all cases (bullet-proofing)
    DB_NAME.replace(os.sep, '/')                                                # replacing
DB_NAME += (os.sep + 'sqlite3DB.db')                                            # Adding file name manually

为了添加数据库文件的名称,我只是简单地添加了一个/和文件的名称,在本例中是sqlite3DB.db。我这样做,因为我在数据库设置上关注django tutorial pages。有更优雅的方式吗?一种更加pythonic的方式,因为它感觉我是硬编码的东西。任何帮助将不胜感激。

我还没有创建sqlite3DB.db,因为在教程中它已经说过它将由django为我创建。

2 个答案:

答案 0 :(得分:3)

不确定你有什么问题,但你可以直接使用os.path.join和文件名来产生绝对路径

os.path.join(DB_NAME, 'sqlite3DB.db')

这是你在找什么?

答案 1 :(得分:0)

不确定你真正需要什么。如果它使用您已正确提及的路径加入文件名

DB_NAME = os.path.join(BASE_DIR, 'database')

如果它添加到系统路径,那么你可以做这样的事情

import sys
sys.path = ['/opt/test/'] + sys.path

如果你需要cd到目录..你可以做这样的事情

os.chdir(os.path.dirname(__file__))