2016-04-22 110 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.abspathos.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

使用'從。導入.'請爲更短的代碼,如'從os.path導入dirname,abspath; dirname(dirname(abspath(__ file __)))' – JRazor

+0

請不要嚇跑我遠離Python! –

+0

@OliverK Python中的正常做法是明確指定路徑。 – JRazor

相關問題