Verwendung von psutil.Popen mit Unicode-Befehlen in Python 2

8

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.

    
Drxxd 06.09.2017, 16:23
quelle

1 Antwort

0

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)

    
jshrimp29 08.02.2018 17:43
quelle