Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich in Python ein Programm mit Leerzeichen im Pfad aus?

Wie führe ich in Python ein Programm mit Leerzeichen im Pfad aus?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 15:08:03394Durchsuche

How to Execute a Program with Spaces in the Path from Python?

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!

Stellungnahme:
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