2016-04-22 4 views
2

In PHP, um auf ein höheres Verzeichnis zu verweisen, würde ich '../../test' verwenden; Wie würde ich es in Python tun?Erstellen einer Datenbankdatei ein Verzeichnis über dem aktuellen

In diesem Fall verwende ich SQLite, um eine Datenbankdatei zu erstellen.

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

Jedoch; Es heißt "Datenbankdatei kann nicht geöffnet werden", die ich als Verzeichniszugriffsfehler betrachte. Wie verweise ich auf ein höheres Verzeichnis in Python?

Antwort

3

Sie könnten versuchen, diese:

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

Liebe diese Lösung - Danke, mein Herr! –

2

Sie müssen den absoluten Pfad zu Ihrer Datenbankdatei finden, indem Sie os.path.abspath und os.path.dirname verwenden. Übergeben Sie dann den absoluten Pfad an sqlite3.connect.

Erste (interne) os.path.dirname gibt Ihnen aktuelle Dateiverzeichnis, zweite os.path.dirname gibt Ihnen übergeordnetes Verzeichnis des aktuellen Dateiverzeichnisses.

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

Verwenden 'aus. import .' bitte für kürzere code wie 'from os.path import dirname, abspath; dirname (dirname (abpath (__ file __))) ' – JRazor

+0

Bitte mach mir keine Angst vor Python! –

+0

@OliverK In Python ist es üblich, den Pfad explizit anzugeben. – JRazor

Verwandte Themen