Hallo,
wenn ich ein skript starte kann ich über
os.path.abspath(".")
das verzeichnis ausgeben in dem das skript liegt...
wie kann ich denn das verzeichnis angeben aus dem ich das skript aufgerufen habe?
danke
Pfad ausgeben in dem man sich befindet
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
evtl. os.getcwd(): http://docs.python.org/lib/os-file-dir.html#l2h-2674 ?
os.path.abspath('.') liefert bei mir das gleiche wie os.getcwd(), beidemale der Pfad in aus dem ich das Script aufgerufen habe.
@Mati: Meintest du deine Frage eventuell andersrum, also womit du den Pfad bekommst, in dem das Script liegt?
@Mati: Meintest du deine Frage eventuell andersrum, also womit du den Pfad bekommst, in dem das Script liegt?
Den bekämst du übrigens mitNirven hat geschrieben:@Mati: Meintest du deine Frage eventuell andersrum, also womit du den Pfad bekommst, in dem das Script liegt?
Code: Alles auswählen
import sys
import os.path
print os.path.dirname(sys.argv[0])
Code: Alles auswählen
__file__
Ich habe sowas kürzlich auch versucht, weil ich einen relativen Import über sys.path.append() vorbereiten will, aber das Script von überall aufrufbar sein soll. Entsprechend lieferten aber getcwd() und Konsorten immer unterschiedliche Ergebnisse und __file__ war IIRC sogar leer. Naja, muss ich mir notgedrungen eh nochmal genauer ansehen.
Mein Fehler ...:
__file__
sys.arg[0]
fördern nicht den Ursprungspfad des "Aufrufers" zu Tage. Das ist wie schon erwähnt, mit os.getcwd() (halt das current working directory) "eigentlich" möglich.
Eventuell ... ich bin mir nicht sicher, habe es auch nicht bisher testen können ... erziehlt man aus Modulen, relativen Import-Ursprunges, nicht mit os.getcwd() mehr den Ursprungspfad des Skriptaufrufers, sondern wiederrum nur das Skript, oder was auch immer.
Vielleicht hilft dann ein Ermitteln im Aufrufskript und Weiterleiten in die andere Bereiche erst einmal weiter?
__file__
sys.arg[0]
fördern nicht den Ursprungspfad des "Aufrufers" zu Tage. Das ist wie schon erwähnt, mit os.getcwd() (halt das current working directory) "eigentlich" möglich.
Eventuell ... ich bin mir nicht sicher, habe es auch nicht bisher testen können ... erziehlt man aus Modulen, relativen Import-Ursprunges, nicht mit os.getcwd() mehr den Ursprungspfad des Skriptaufrufers, sondern wiederrum nur das Skript, oder was auch immer.
Vielleicht hilft dann ein Ermitteln im Aufrufskript und Weiterleiten in die andere Bereiche erst einmal weiter?