Seite 1 von 1

subprocess.Popen Fehler

Verfasst: Mittwoch 20. Juli 2022, 10:16
von martinwalter
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?

Re: subprocess.Popen Fehler

Verfasst: Mittwoch 20. Juli 2022, 10:28
von __deets__
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.

Re: subprocess.Popen Fehler

Verfasst: Mittwoch 20. Juli 2022, 10:31
von martinwalter
Suuper, besten Dank!