Meine Anwendung läuft bisher über VS Code, soll aber jetzt eigenständig und unabhängig von einem USB-STick laufen.
Das ist vermutlich die Ursache für mein Problem:
Ich starte von E:
e:\python.exe e:\<Anwendung>
Das fun ktioniert zwar, aber beim Lesen einer Konfigurationsdatei klemmt es.
Der Name der Datei ist hardwired - wahrscheinlich keine gar so tolle Idee cf.read('ANwendung.ini')
Interessanterweise gibt es keinen filenotfoundError oder so etwas, sondern erst später einen KeyError, weil wohl bei fehlender config-Datei die Keys-AUflistung einfach leer ist. Wusste ich bisher nicht.
Versuchsweise habe ich die read-Anweisung auf "e:\<Anwendung.ini>" geändert - und damit geht es.
Wie löse ich das eleganter? Die ini-Datei soll im gleichen Verzeichnis/Pfad gesucht werden wie die Python-Datei.
configparser / ini-Datei nicht gefunden / (relativer) pfad in python
- __blackjack__
- User
- Beiträge: 14237
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@drnicolas: Module haben den Namen `__file__` definiert, als Pfad dieser Datei. Davon den Verzeichnisteil nehmen (`Path.parent`) und man hat das Verzeichnis in dem das Modul liegt.
`Configparser.read()` löst absichtlich keine Ausnahme aus, weil man dort auch mehrere Dateinamen übergeben kann, zum Beispiel um zu ermöglichen das in verschiedenen Verzeichnissen optionale Konfigurationsdateien liegen. Die Methode hat einen Rückgabewert. Die Dokumentation weiss mehr.
`Configparser.read()` löst absichtlich keine Ausnahme aus, weil man dort auch mehrere Dateinamen übergeben kann, zum Beispiel um zu ermöglichen das in verschiedenen Verzeichnissen optionale Konfigurationsdateien liegen. Die Methode hat einen Rückgabewert. Die Dokumentation weiss mehr.
“Ich bin für die Todesstrafe. Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen. So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
