Pfad ausgeben in dem man sich befindet

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
Mati
User
Beiträge: 68
Registriert: Dienstag 6. Juni 2006, 16:54

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
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

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?
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Nirven hat geschrieben:@Mati: Meintest du deine Frage eventuell andersrum, also womit du den Pfad bekommst, in dem das Script liegt?
Den bekämst du übrigens mit

Code: Alles auswählen

import sys
import os.path
print os.path.dirname(sys.argv[0])
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Code: Alles auswählen

__file__
gibt den Pfad zum aktuellen Modul an.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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.
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

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?
Antworten