Making it Pythonic: Erstellen Sie eine SQLite3-Datenbank, wenn sie nicht existiert?

8

Ich habe ein Python-Skript geschrieben, das eine leere Datenbank initialisiert, falls sie nicht existiert.

%Vor%

Kann ich das auf eine pythonischere Art und Weise tun, mit einem Versuch - außer, oder ist diese Art von Code akzeptabel?

    
yayu 22.07.2012, 09:53
quelle

4 Antworten

27

Ich denke, du kannst es so machen:

%Vor%

Dies sollte eine Verbindung zu Ihrer Datenbank herstellen und sie erstellen, falls sie nicht existiert. Ich bin mir nicht sicher, ob das der pythischste Weg ist, aber es verwendet das sqlite3 Modul anstelle des sqlite3 Befehls.

    
zenpoy 22.07.2012, 10:05
quelle
5
  

Making it Pythonic: Erstellen Sie eine SQLite3-Datenbank, wenn sie nicht existiert?

Die Pythonic Methode hierfür ist die Verwendung des Context Managers:

%Vor%

In einer Python-Shell klingt das für mich:

%Vor%

Um sicherzustellen, dass Sie über einen temp-Dateipfad verfügen, der plattformübergreifend funktioniert, verwenden Sie tempfile.gettempdir :

%Vor%     
Aaron Hall 04.12.2014 15:42
quelle
2

sqlite3.connect wird versuchen, eine Datenbank zu erstellen, wenn sie nicht existiert - die einzige Möglichkeit festzustellen, ob eine existiert, ist zu versuchen, sie zu öffnen und ein IOError abzufangen. Um eine leere Datenbank zu erstellen, verbinden Sie sich einfach mit dem sqlite3 -Modul.

%Vor%

Natürlich müssen Sie möglicherweise noch etwas mit os.makedirs machen, abhängig davon, ob die Struktur bereits existiert.

    
Jon Clements 22.07.2012 10:10
quelle
2

Erzeuge Verzeichnispfad, Datenbankdatei und Tabelle

Hier ist ein Rezept zum Erstellen des Verzeichnispfads, der Datenbankdatei und der Tabelle wenn nötig. Wenn diese bereits vorhanden sind, überschreibt das Skript nichts und verwendet einfach, was gerade zur Hand ist.

%Vor%     
Serge Stroobandt 18.07.2017 12:04
quelle

Tags und Links