ich frage mich immer wieder, wie ich die Daten, die meine Programme brauchen am besten sortiere, bzw. wo ich sie ablegen lasse. Im Beispiel hier geht es um Sqlite-Datenbanken. Auf die muss der Nutzer ja stets Schreibzugriff haben.
Um plattformunabhängig zu sein erstelle ich bei Programmen mit grafischer Oberfläche mit PyQt eine Settings-Datei im Ini-Format. Somit wird diese Settings-Datei auch unter Windows als Datei abgelegt und nicht in die Registry geschrieben, wie es standardmäßig der Fall ist. Diese Datei liegt unter Linux normal in ~/.config/ProgrammName (und unter Windows eben in einem entsprechenden Verzeichnis). Den Ordner, in dem die Settings-Datei liegt lese ich aus und lege die Datenbank dort hinein. Im Code sieht das etwa so aus:
Code: Alles auswählen
# Load settings
QSettings.setDefaultFormat(QSettings.IniFormat)
self.settings = QSettings()
self.configpath = os.path.split(self.settings.fileName())[0]
# Prepare database
self.db_filename = self.configpath + os.sep + "Database.db"
self.db = QSqlDatabase.addDatabase("QSQLITE")
Gibt es grundsätzlich einen Ordner, in dem man Nutzerdaten die keine Konfigurationsdateien sind ablegen sollte?
Schöne Grüße