Hey, ich versuche, den folgenden Befehl auszuführen (mit psutil.Popen mit Python 2.7):
%Vor%Mit diesem Code:
%Vor%Aber ich bekomme diese Ausnahme:
%Vor%Ich habe diese verwandte Frage gefunden: subprocess.Popen mit einem Unicode-Pfad . Aber jede gegebene Antwort funktioniert nicht für mich.
Wenn subprocess.Popen (command.encode (locale.getpreferredencoding ())) verwendet wird, wird die folgende Ausnahme ausgelöst:
%Vor%Mit path.encode ('mbcs') werden alle Unicode-Zeichen zu Fragezeichen.
Ich möchte os.startfile nicht verwenden, da ich andere Befehle im Programm verwenden muss und dann den geöffneten Prozess behandeln muss (wenn die os.startfile nicht funktioniert) erlaube das nicht.
Ich habe dieses modifizierte Popen gefunden: Ссылка Aber dieser Code wurde nicht gründlich getestet.
Gibt es eine korrekte Methode, Popen mit einem Unicode-Befehl in Python 2.7 zu verwenden?
Danke.
Das Problem besteht darin, dass Sie bei der Definition von command
doppelte Anführungszeichen verwenden. Die Art, wie es geschrieben ist, teilt die Anweisung in mehrere Strings an den falschen Stellen. Die Verwendung von einfachen Anführungszeichen für das erste und das letzte Anführungszeichen (Öffnen und Schließen von Zeichenfolgen) behebt das Problem für mich.
command = u'\"C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE\" \"{}\"'.format(full_path)
Tags und Links python windows subprocess python-2.x psutil