Wenn Sie den subprocess.call()
Weg gehen möchten , sollte es unter Windows folgendermaßen aussehen:
import subprocess
subprocess.call(('cmd', '/C', 'start', '', FILE_NAME))
Sie können nicht einfach verwenden:
subprocess.call(('start', FILE_NAME))
weil start
ist keine ausführbare Datei, sondern ein Befehl des cmd.exe
Programms. Das funktioniert:
subprocess.call(('cmd', '/C', 'start', FILE_NAME))
aber nur, wenn der FILE_NAME keine Leerzeichen enthält.
Während subprocess.call
method en die Parameter korrekt zitiert, hat der start
Befehl eine ziemlich seltsame Syntax, wobei:
start notes.txt
macht etwas anderes als:
start "notes.txt"
Die erste Zeichenfolge in Anführungszeichen sollte den Titel des Fensters festlegen. Damit es mit Räumen funktioniert, müssen wir Folgendes tun:
start "" "my notes.txt"
Das ist, was der Code oben tut.