2016-05-18 12 views
-2

Ich bin neu in Python und ich muss notepad.exe mit Subprozess-Modul öffnen. Der Code:Warum funktioniert Python dieser Code nicht?

from subprocess import * 
    call("C:\Windows\system32\notepad.exe") 

scheint nicht zu funktionieren. Das Programm läuft nur, gibt 0 zurück, aber Notepad öffnet überhaupt nicht. Vielen Dank im Voraus

+0

Welche Fehler haben Sie bekommen? –

Antwort

0

Verwenden Sie ein String-Literal mit Präfix r. Das Problem ist, dass Sie \n verwenden, die auf Ihrem Weg zwischen C

from subprocess import * 
call(r"C:\Windows\System32\notepad.exe") 
+0

Aufruf (r "C: \\ Windows \ system32 \ notepad.exe") funktioniert von cmd, aber nicht von PyCharm. Gibt es einen Grund dafür? – Daniel

+0

Aufruf (r "C: \ Windows \ system32 \ notepad.exe") –

+0

Was auch immer der vollständige Pfad zu der Datei ist, wird als Zeichenfolge angegeben. Sie können in Windows Explorer sehen, was der Pfad zu notepad.exe ist. Zum Beispiel auf meinem System ist der vollständige Pfad zum Editor: 'C: \ Windows \ System32 \ notepad.exe' –

-2

Sie haben einen zusätzlichen Raum eine neue Zeile Zeichen darstellt: \ und Windows. Versuchen:

from subprocess import * 
call("C:\\Windows\system32\notepad.exe") 

jedoch beste Praxis ist die os.path Modulfunktionen verwenden Pfade plattformunabhängig zu bauen:

os.path.join("C:", "Windows", "system32", "notepad.exe")

+2

Ich finde es etwas komisch, für Plattformunabhängigkeit zu versuchen, wenn ein Teil des Pfades "Windows" ist ... – TigerhawkT3

+0

Natürlich ist dies nur ein Beispiel. In einem Allzweckprogramm wird der Pfad nicht so codiert sein. Außerdem werden Sie beim Betrachten der Ausgabe von os.path.join auf Ihrem Betriebssystem die richtige Art finden, Schrägstriche zu setzen. –

+0

Ganz zu schweigen von der Tatsache, dass der erste Codeblock Das Problem wird nicht behoben. – TigerhawkT3

Verwandte Themen