Wenn Sie ein eingefrorenes Python-Skript (eingefroren mit py2exe) von einem anderen Verzeichnis und Laufwerk als das Skript ausführen, was ist der beste Weg, den Pfad des ausführenden Skripts zu bestimmen?
Wenige Lösungen, die ich versucht habe
%Vor%Problem: Gibt nicht den vollständigen Pfad zurück. Es gibt nur den Skriptnamen zurück.
%Vor%Problem: Funktioniert nicht unter Windows
%Vor%Problem: Gibt eine leere Zeichenfolge zurück.
%Vor%Funktioniert nicht, wenn das Laufwerk nicht mit pwd übereinstimmt
%Vor%Funktioniert nicht, wenn das Laufwerk nicht mit pwd übereinstimmt
Hier ist ein minimales nicht funktionierendes Beispiel
%Vor%Verwandte Fragen:
Hinweis
@ Fenikso's Lösung funktioniert, wenn sich das Skript auf demselben Laufwerk befindet, auf dem Sie gerade arbeiten, aber wenn es auf einem anderen Laufwerk läuft, funktioniert es nicht
IMHO, Code, der sich abhängig von absoluten Pfaden anders verhält, ist keine gute Lösung. Es wird wahrscheinlich eine relative Pfadlösung sein. Verwenden Sie dirname, um das relative Verzeichnis und os.sep für plattformübergreifende Kompatibilität zu kennen.
%Vor%Das eingefrorene Attribut ist der Python-Standard.
Sieh dir auch Esky an: Ссылка