Allgemeine Dateiorganisation ("best practice")
Verfasst: Freitag 21. Januar 2011, 19:14
Hallo,
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:
Ist das grundsätzlich vernünftig oder gibt es eine bessere Alternative?
Gibt es grundsätzlich einen Ordner, in dem man Nutzerdaten die keine Konfigurationsdateien sind ablegen sollte?
Schöne Grüße
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