Heim > Artikel > Backend-Entwicklung > Wie führe ich in Python ein Programm mit Leerzeichen im Pfad aus?
So führen Sie ein Programm aus Python aus
Python bietet eine bequeme Möglichkeit, externe Programme mithilfe der Funktion os.system() auszuführen. Diese Funktion kann jedoch fehlschlagen, wenn der Pfad zum Programm Leerzeichen enthält.
Lösung: Verwendung von subprocess.call()
Die Funktion subprocess.call() ist eine Alternative zu os.system(), die Probleme mit Anführungszeichen vermeidet, die durch Leerzeichen im Pfad verursacht werden. Es benötigt eine Liste von Argumenten anstelle einer einzelnen Zeichenfolge, was die Argumenttrennung vereinfacht.
<code class="python">import subprocess subprocess.call(['C:\Temp\a b c\Notepad.exe', 'C:\test.txt'])</code>
In diesem Beispiel wird Notepad.exe mit dem Parameter C:\test.txt ausgeführt. Die Funktion subprocess.call() wartet, bis das Programm abgeschlossen ist.
Andere Optionen
1. Leerzeichen maskieren
Das Einschließen des Pfads in doppelte Anführungszeichen kann Leerzeichen maskieren. Diese Methode kann jedoch umständlich werden, wenn mehrere Parameter hinzugefügt werden.
<code class="python">os.system('"C:\Temp\a b c\Notepad.exe" "C:\test.txt"')</code>
2. Die Verwendung von Shell=True mit os.system()
Das Festlegen von Shell=True ermöglicht es dem Befehlsinterpreter des Betriebssystems, Anführungszeichenkonventionen zu verarbeiten. Allerdings birgt diese Methode Sicherheitsrisiken.
<code class="python">os.system("C:\Temp\a b c\Notepad.exe C:\test.txt", shell=True)</code>
Fazit
subprocess.call() ist die bevorzugte Methode zum Ausführen eines Programms aus Python, wenn der Pfad Folgendes enthält Räume. Es bietet eine unkomplizierte und sichere Lösung.
Das obige ist der detaillierte Inhalt vonWie führe ich in Python ein Programm mit Leerzeichen im Pfad aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!