So bekommst du den kompletten Pfad zum gestarteten Modul:
os.path.abspath(sys.argv[0])
Ordner des gestarteten Moduls:
os.path.dirname(os.path.abspath(sys.argv[0]))
Dateiname des gestarteten Moduls:
os.path.basename(sys.argv[0])
Aktueller Ordner:
os.path.abspath(os.curdir)
Kompletter Pfad zur "aktuellen" Datei:
os.path.realpath(__file__)
Ordner der "aktuellen" Datei:
os.path.dirname(os.path.realpath(__file__))
Dateiname der "aktuellen" Datei:
os.path.basename(__file__)
Vorsicht! __file__
oder sys.argv[0]
geben (abhängig vom Betriebssystem und vom aktuellen Ordner oder der Art des Programmaufrufs) nicht immer den kompletten Pfad zur Datei zurück. Deshalb muss vorher mit os.path.abspath()
für gleiche Bedingungen gesorgt werden.
Wenn man das Programm mit cx_freeze oder py2exe gepackt hat, dann gibt es die einzelnen Dateien/Module nicht mehr. Dann kann man den Pfad zum aktuellen Modul auch nicht mehr mit __file__
ermitteln. Statt dessen muss man mit sys.argv[0]
den Pfad zur Startdatei ermitteln.
Ich programmiere Progressive Web Applications, Mobile Apps, Desktop-Programme und noch vieles mehr. Falls es dich interessiert, findest du mehr Informationen darüber auf meiner Business-Website.