Ich arbeite an einem einfachen Python-Skript, das subprocess
und/oder os
verwenden kann, um einige Befehle auszuführen, die gut funktionieren.cd Terminal in einem bestimmten Verzeichnis nach dem Ausführen eines Python-Skripts?
Allerdings, wenn das Skript beendet Ich möchte cd
das eigentliche Terminal (in diesem Fall OS X) so beim Beenden, sind die neuen Dateien bereit, in dem Verzeichnis zu verwenden, in dem die erstellt wurden. All folgenden (subprocess.Popen
, os.system
, os.chdir
) kann tun, was ich von innerhalb will das Skript (das heißt, sie Sachen im Zielverzeichnis ausführen), aber beim Verlassen des Terminals im Skript eigenen Verzeichnis verlassen, nicht das Ziel Verzeichnis.
Ich möchte vermeiden, ein Shell-Skript in eine temporäre Datei zu schreiben, nur um dies zu erreichen, wenn das überhaupt möglich ist?
Danke - ich schreibe es als Shell-Skript um, und rufe den Python stattdessen von dort :-) –
Sie müssen den Python-Interpreter nicht herumhängen lassen. Sie müssen lediglich die Prozessumgebung so einrichten, wie Sie es möchten (z. B. "os.chdir()") und dann "os.exec()" eine neue Shell. Ja, Sie werden immer noch eine untergeordnete Shell ausführen, aber der Python-Interpreter wurde ersetzt. http://docs.python.org/library/os.html#os.exec – msw
@msw: Ich war nie in der Lage, das zuverlässig auf allen Plattformen mit Shells insbesondere (speziell Powershell) zu ziehen, aber ich hätte vorgeschlagen, dass. –