Задать вопрос
@R0Zi

Как через subprocess выполнять скрипты с пробелами в путях?

Я запускаю скрипты, самое простое, Джава и Питон
subprocess.Popen(
                ["cmd", "/k", path_app, path_file],
                creationflags=subprocess.CREATE_NEW_CONSOLE,
            )

path_app - Путь к Джаве или Питону
path_file - Путь к скрипту

Но проблема в том, что, если в path_app или path_file есть пробелы то все ломается.
Сделать что-то типо f'"{path}"' - не сойдет, так как путь в консоли(которая запускается) в ошибке пишет как
'\"C:\Users\admin\AppData\Local\Programs\Python\Python313\python.exe\"'


Я бы мог писать просто
subprocess.Popen(
                [path_app, path_file],
                creationflags=subprocess.CREATE_NEW_CONSOLE,
            )

Так работает но консоль сразу же после выполнения закрывается, добавив "& pause" - не помогает


java script.java
python script.py

Мне такое не подходит!

  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой 13 комментариев
Решения вопроса 1
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
subprocess.Popen(
    f'cmd /k ""{path_app}" "{path_file}""',
    creationflags=subprocess.CREATE_NEW_CONSOLE
)

68234e308f567451893958.png
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы