2016-04-22 17 views
2

PHPでは、上位ディレクトリを参照するために '../../test'を使用します。 Pythonでどうすればいいですか?データベースファイルを現在のディレクトリの1つ上に作成する

この場合、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

を使用し '。 import 'を実行してください。' from os.path import dirname、abspath;のような短いコードでお願いします。 dirname(dirname(abspath(__ file __))) ' – JRazor

+0

Pythonから私を怖がらせてはいけません! –

+0

@OliverK Pythonでは、パスを明示的に指定するのが普通です。 – JRazor

関連する問題