Subprocess.run () не может найти путь - PullRequest
0 голосов
/ 30 октября 2018

У меня проблема со сценарием, который я написал.

Я просто пытаюсь запустить исполняемый файл (я взял arduino.exe в качестве примера). Однако я либо получаю FileNotFoundError: [WinError 2] или a non-zero exit status (в зависимости от Shell=True это off или on соответственно).

Код всего моего скрипта прост:

import subprocess
subprocess.run("C:\Program Files (x86)\Arduino\arduino.exe",shell=True,check=True)

Мне известно, что Shell = True представляет угрозу безопасности, но я не нашел другого способа решения ошибки «путь не найден». Мое другое предположение, что код борется с числами и пробелами в пути?

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 30 октября 2018

вам нужно экранировать символ обратной косой черты. используйте \\ вместо \ для каждой обратной косой черты,

subprocess.run("C:\\Program Files (x86)\\Arduino\\arduino.exe",shell=True,check=True)

или вы можете использовать необработанный строковый литерал,

subprocess.run(r"C:\Program Files (x86)\Arduino\arduino.exe",shell=True,check=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...