subprocess.Popen Fehler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
martinwalter
User
Beiträge: 3
Registriert: Mittwoch 20. Juli 2022, 10:14

Guten Tag zusammen

ich mache meine ersten Schritte mit Python und wollte damit ein Programm öffnen - da scheiterts aber schon bereits:

import subprocess
subprocess.Popen('C:\Windows\System32\notepad.exe')


Der Fehler:
================ RESTART: C:\Users\mwalter\Desktop\start_PAD.py ================
Traceback (most recent call last):
File "C:\Users\mwalter\Desktop\start_PAD.py", line 2, in <module>
subprocess.Popen('C:\Windows\System32\notepad.exe')
File "C:\Users\mwalter\AppData\Local\Programs\Python\Python310\lib\subprocess.py", line 969, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "C:\Users\mwalter\AppData\Local\Programs\Python\Python310\lib\subprocess.py", line 1438, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] Das System kann die angegebene Datei nicht finden

Wo liegt da das Problem?
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Daran, dass du backslashes in Pfaden benutzt, die in Strings aber eine besondere Funktion haben: escape sequenzen einzuleiten. In deinem Fall bedeutet \n nicht ein \, und dann ein n, sondern das newline-Zeichen (ASCII 10). Du musst wahlweise raw-strings benutzen

r"C:\mein\pfad\..."

oder forward-slashes, die Windows auch ganz einfach akzeptiert. Es ginge auch die backslashes ihrerseits zu escapen, mit \\, also

"c:\\mein\\pfad"

aber das ist recht haesslich und fehleranfaellig, und wuerde ich daher nicht empfehlen.
martinwalter
User
Beiträge: 3
Registriert: Mittwoch 20. Juli 2022, 10:14

Suuper, besten Dank!
Antworten