configparser oder anders: Best practise?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Hallo zusammen, ich habe eine Reihe von Tools, die bei mir einzelne Aufgaben erledigen und dabei auf bestimmte gemeinsame Ressourcen zurückgreifen müssen (Berichte, Protokolle, Datasets usw. usf.), d. h. es gibt jeweils einen gemeinsamen Daten-Ordner, wo dann verschiedene Skripte drin arbeiten.

Das ist mein Problem:
  • Wenn ich jetzt ein Verzeichnis ändere, muss ich aktuell in den einzelnen Skripten den Zielordner ändern. Ich überlege das einmal zentral zu verwalten, um mir die Arbeit - z. B. bei einer Migration - zu erleichtern.
Meine Frage:
  • Wie löst ihr das?
Meine Überlegung:
  • Ich könnte eine ini-Datei anlegen und mittels configparser laden, was Standardbibliothek-Aufgabe wäre. Problem für mich wäre allerdings, dass die ini-Datei nicht jeweils in einem zentralen Verzeichnis liegt, d. h. - wenn ich mal den Rechner wechsle - müsste ich wieder in jedem Skript den Pfad zur ini-Datei anpassen.
  • Ein Modul settings.py, was ich im System installiere, was dann die Pfadangaben und die Vorgaben zentral enthält und vorhält. Eigentlich macht das für mich Sinn, ich bin mir allerdings unsicher, ob das der professionelle Weg ist, d. h. ob sich hier nicht später Probleme ergeben können.
BlackJack

@pixewakb: Ini-Datei (beziehungsweise JSON-Datei) und die dann zum Beispiel im Heimatverzeichnis des Benutzers, damit sie gefunden werden kann. Also so wie alle anderen Programme das auch machen.
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Hallo,


ich würde es mit der 'settings.py' lösen.
Die ini sollte aber trotzdem mit absoluten Pfad angesprochen werden.
Wenn du das Projekt also migrieren musst, unbedingt einen Ordner finden den alle gemeinsam haben.
Vielleicht ein Ordner im gemeinsamen Netzlaufwerk?
Antworten