Использование подпроцесса для запуска скрипта LUA - PullRequest
0 голосов
/ 26 апреля 2019

Когда я использую os.system в своем скрипте Python, запускается следующая команда LUA. Сценарий не ожидает завершения процесса LUA.

os.system("cd ~/code/CNNMRF; qlua cnnmrf.lua -max_size 750  -content_name test -style_name style_img")

Насколько я понимаю, мне нужно использовать subprocess. Как мне сопоставить эту команду os.system с subprocess, пожалуйста?

Когда я смотрю на примеры, я вижу subprocess.run(["ls", "-l"]), но я не уверен, как изменить это для моего сценария.

1 Ответ

2 голосов
/ 26 апреля 2019

os.system запускает процесс. cd ... ; - это команда оболочки.

Что вам нужно, это subprocess.run(["lua", "cnnmrf.lua" ...], shell=True, cwd='/home/<your user>/code/CNNMRF');

В subprocess.call вы можете передать текущий рабочий каталог. Там вы не можете использовать ~. Вам нужно передать обычный путь с /home/.../code/CNNMRF

Аргументы subprocess.run - это список. Поэтому вам нужно разделить вашу команду на пробелы.

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