Как использовать system () в c ++ для запуска python скрипта, содержащего пробел - PullRequest
0 голосов
/ 08 июля 2020

Я использую sh для запуска сценария python в коде C ++, но адресный путь содержит пробелы. Вот что пытаюсь сделать:

string python = "\"D:\\my folder\\python.exe\"";
string script = "\"D:\\my scripts\\hello.py\"";
string arg = "\"argument 1\"";
string cmd= python + " " + script + " " + arg;
system(cmd.c_str());

Вот cmd "\"D:\\my folder\\python.exe\" \"D:\\my scripts\\hello.py\"" "\"argument 1\"" который находится в текстовой форме, ожидается, что он будет выполнен как «D: \ my folder \ python .exe» «D: \ my scripts \ hello.py» «аргумент 1» в качестве командной строки, но это не выполняется с ошибкой -> 'D: \ my' не распознается как внутренняя или внешняя команда.

Но та же самая команда «D: \ my folder \ python .exe» «D: \ my scripts \ hello.py» отлично работает в командной строке? Подскажите на C ++, как выполнить сценарий python с пробелом в пути и передать аргумент сценарию.

1 Ответ

1 голос
/ 09 июля 2020

Хорошо, я нашел способ заставить его работать с системой () Я пробовал с exe c, но все еще имел некоторые проблемы. нужно заключить всю команду в двойные кавычки.

В моем случае это должно быть "\"\"D:\\my folder\\python.exe\" \"D:\\my scripts\\hello.py\"" "\"argument 1\"\""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...