2016-04-22 3 views
2

В PHP, Чтобы обратиться к более высокому каталогу, я бы использовал «../../test»; Как я могу сделать это на Python?Создание файла базы данных в одном каталоге выше текущего

В этом случае я использую SQLite для создания файла базы данных.

import sqlite3 
conn = sqlite3.connect('../data/test.db') 

Однако; он говорит «не удается открыть файл базы данных», который я рассматриваю как ошибку доступа к каталогу. Как я могу ссылаться на более высокий каталог в Python?

ответ

3

Вы можете попробовать это:

conn = sqlite3.connect(os.path.realpath('../data/test.db')) 
+0

Люблю это решение - Спасибо, сэр! –

2

Вам необходимо найти абсолютный путь к файлу базы данных, используя os.path.abspath и os.path.dirname. Затем пройдите абсолютный путь до sqlite3.connect.

Первый (внутренний) os.path.dirname предоставит вам каталог текущего файла, второй os.path.dirname предоставит вам родительский каталог каталога текущего файла.

from os.path import join, dirname, abspath 
db_path = join(dirname(dirname(abspath(__file__))), 'data/test.db') 
sqlite3.connect(db_path) 
+0

Используйте 'из. import. 'пожалуйста, для более короткого кода, например' from os.path import dirname, abspath; dirname (dirname (abspath (__ file __))) ' – JRazor

+0

Пожалуйста, не пугайте меня от Python! –

+0

@OliverK Это нормальная практика в Python, чтобы указать путь явно. – JRazor

Смежные вопросы