Aktuelles Verzeichnis mit Unterprozess ändern
Wenn Sie ein Skript in einem Unter- oder Oberverzeichnis ausführen, müssen Sie zuerst zum gewünschten Verzeichnis navigieren. Bei der Verwendung eines Unterprozesses zum Ändern des Arbeitsverzeichnisses können jedoch Fehler auftreten. In diesem Artikel werden wir das Problem untersuchen und eine Lösung anbieten.
Das Problem tritt auf, wenn versucht wird, den Befehl „cd“ über einen Unterprozess auszuführen, wie im bereitgestellten Beispielcode gezeigt. Der Unterprozess versucht, „cd“ als Programm aufzurufen, während es sich in Wirklichkeit um einen Shell-internen Befehl handelt, der als „cd
Um diesen Fehler zu vermeiden, verwenden Sie „subprocess.call“. ('cd ..', shell=True)', um anzugeben, dass der Befehl von der Shell ausgeführt werden soll. Dieser Ansatz ist jedoch unnötig, da das Ändern des aktuellen Verzeichnisses in einem untergeordneten Prozess keine Auswirkungen auf das Verzeichnis des übergeordneten Prozesses hat.
Stattdessen gibt es alternative Methoden, um die gewünschte Funktionalität zu erreichen:
<code class="python">os.chdir("/") subprocess.Popen("ls") os.chdir(wd)</code>
<code class="python">subprocess.Popen("ls", cwd="/")</code>
Durch die Verwendung dieser Methoden können Sie das aktuelle Verzeichnis effektiv steuern, wenn Sie Skripte in verschiedenen Verzeichnissen mithilfe des Unterprozesses ausführen.
Das obige ist der detaillierte Inhalt vonWie ändere ich das aktuelle Verzeichnis, wenn ich einen Unterprozess verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!