как использовать кавычки при передаче параметров

p = subprocess.Popen('c:\Users\app.exe -arg1=arg1 -arg2=\path\ -arg3="arg3"')
                                                         ^^

Ответы (1 шт):

Автор решения: geo

Проблема не в кавычках, а в символе "\", он предворяет символ, который интрепретируется не как печатный, а как управляющий (тот, который выполняет какие-то действия (переводит корретку, добавляет строку, стирает 1 символ слева)) вам надо его заэкранировать:

p = subprocess.Popen('c:\\Users\\app.exe -arg1=arg1 -arg2=\\path\\ -arg3="arg3"')

или вычислить:

p = subprocess.Popen(f'c:{chr(92)}Users{chr(92)}app.exe -arg1=arg1 -arg2={chr(92)}path{chr(92)} -arg3="arg3"')

или по рекомендации @CrazyElf (спасибо за напоминание) использовать префикс "r"

p = subprocess.Popen(r'c:\Users\app.exe -arg1=arg1 -arg2=\path\ -arg3="arg3"')
→ Ссылка