Heim > Backend-Entwicklung > Python-Tutorial > Wie führe ich Skripte in Unterverzeichnissen oder Superverzeichnissen mit Subprocess aus?

Wie führe ich Skripte in Unterverzeichnissen oder Superverzeichnissen mit Subprocess aus?

Susan Sarandon
Freigeben: 2024-11-05 04:22:02
Original
1020 Leute haben es durchsucht

How to Execute Scripts in Subdirectories or Superdirectories with Subprocess?

Unterprozess im Unterverzeichnis oder Superverzeichnis

Wenn Sie versuchen, ein Skript innerhalb eines Unterverzeichnisses oder Superverzeichnisses mithilfe eines Unterprozesses auszuführen, kann die Fehlermeldung „OSerror: [Errno 2] No Eine solche Datei oder ein solches Verzeichnis.“

Dieses Problem tritt auf, weil der betreffende Code das Programm „cd“ aufruft, bei dem es sich um ein Shell-internes Programm handelt. Um „cd“ ordnungsgemäß aufzurufen, sollten Sie den Befehl „cd“ mit dem Argument „shell=True“ verwenden:

<code class="python">subprocess.call('cd ..', shell=True) </code>
Nach dem Login kopieren

Dieser Code ist jedoch wirkungslos, da ein Prozess das Arbeitsverzeichnis eines anderen Prozesses nicht ändern kann UNIX-ähnliche oder Windows-Betriebssysteme.

Stattdessen können Sie die Funktion „os.chdir()“ oder den „subprocess“ namens Parameter „cwd“ verwenden, um das Arbeitsverzeichnis zu ändern, bevor Sie den Unterprozess ausführen.

Um beispielsweise „ls“ im Stammverzeichnis auszuführen, können Sie Folgendes verwenden:

<code class="python">os.chdir("/")
subprocess.Popen("ls")</code>
Nach dem Login kopieren

oder einfach:

<code class="python">subprocess.Popen("ls", cwd="/")</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie führe ich Skripte in Unterverzeichnissen oder Superverzeichnissen mit Subprocess aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage