Hallo,
ich schreibe zurzeit ein Skript das auf 30 Entwicklungsrechnern ausgeführt wird.Nehmen wir an, der Name des Haupt-Arbeitsverzeichnisses auf jedem Rechner ist der selbe, nähmlich "Working_Directory". Der apsolute Pfad zum "Working_Directory" ist auf jeden Rechner aber unterschiedlich. Beispielsweise könnte dies folgendermassen aussehen:
RECHNER A:
D:\Projektverzeichnis\Projekt\Working_Directory\
RECHNER B:
C:\Projektverzeichnis\Projekt\Variante_A\Working_Directory\
RECHNER C:
D:\Projektverzeichnis\meine_Projekte\Projekt_A\Working_Directory\
Beim ausführen des Skripts auf den jeweiligen Rechnern soll somit der apsolute Pfad zum "Working_Directory" ausgegeben werden. Wie ist das am einfachsten zu realisieren? :K
Vielen Dank im vorraus!
Absoluten Pfad ausgeben
Meinst du jetzt wirklich das "working directory" oder das Directory in dem sich das Skript befindet?
Hier sind beide Varianten:
Hier sind beide Varianten:
Code: Alles auswählen
print(os.getcwd())
print(os.path.dirname(__file__))
@milexy86
Wenn ich Dich richtig verstehe, suchst Du eine Möglichkeit, zu ermitteln, wo sich der Originalpfad eines Links befindet? Wenn dem so ist, dann suchst Du os.path.realpath und os.path.islink.
mutetella
Wenn ich Dich richtig verstehe, suchst Du eine Möglichkeit, zu ermitteln, wo sich der Originalpfad eines Links befindet? Wenn dem so ist, dann suchst Du os.path.realpath und os.path.islink.
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit )
Hallo,
danke euch für die Antwort. Etwas konkreter zu meiner Frage: Ich möchte den Pfad bis zum "Working_Directory" ausgeben (der bei jedem Rechner unterschiedlich ist). Das Skript selbst ist im Working_Directory drinen. Die Ordnerstruktur innerhalb von Working_Directory ist bei jedem Rechner strikt gleich.
Working Directory ist folgendermassen aufgebaut:
\01_SourceCode\....
\02_Architecture\...
\03_Quality\...
\Tools\...
Das Script befindet sich dann innerhalb von Tools, also \Tools\mein_script.py
Hoffe das es jetzt etwas verständlicher ist?
danke euch für die Antwort. Etwas konkreter zu meiner Frage: Ich möchte den Pfad bis zum "Working_Directory" ausgeben (der bei jedem Rechner unterschiedlich ist). Das Skript selbst ist im Working_Directory drinen. Die Ordnerstruktur innerhalb von Working_Directory ist bei jedem Rechner strikt gleich.
Working Directory ist folgendermassen aufgebaut:
\01_SourceCode\....
\02_Architecture\...
\03_Quality\...
\Tools\...
Das Script befindet sich dann innerhalb von Tools, also \Tools\mein_script.py
Hoffe das es jetzt etwas verständlicher ist?
@milexy86: Na dann ist es /me's zweite Variante um den Schritt ein Verzeichnis höher zu gehen erweitert. Plattformunabhängig ausgedrückt:
Code: Alles auswählen
os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
@darktrym: ``argv[0]`` funktioniert auch nicht immer. Das kann zum Beispiel Probleme machen wenn jemand einen Link auf das Programm setzt. Oder das Modul von einem anderen Modul in einem anderen Pfad importiert. Denn wenn man `__file__` verwendet, möchte man ja den Pfad relativ zu *diesem* Modul, unabhängig davon wie das importiert oder ausgeführt wurde. Einen wirklich 100% zuverlässigen Weg gibt es sowieso nicht, da sollte man immer noch eine zusätzliche, andere Möglichkeit für den Anwender bieten, wie Umgebungsvariablen oder Optionen beim Aufruf.