Ответ 1
Модуль sub-process
может быть тем, что вы ищете. Однако дело в том, что вы получаете результат процесса после завершения всей программы. это означает, что если программа, которую вы пытаетесь запустить, запускается вечно, вы не сможете увидеть вывод до тех пор, пока он не завершит работу (либо путем принудительного его использования, либо с помощью методов завершения).
Пример того, как назначить вывод переменной, будет:
output,error=your_process.communicate()
Выходная часть этого - это то, что вы будете использовать (исходя из вашего вопроса). Однако ошибка заключается в том, что вы получаете, если вы ее запустили, и есть проблема (не возвращает 0). Если вы не хотите записывать ошибки, вы можете просто назначить его _
.
Также обратите внимание, что если вы используете аргументы ключевого слова, я бы предложил использовать библиотеку shlex
для разделения вашей строки на аргументы. (вы можете просто использовать регулярную строку, такую как: var="mypythonprogram.py argument1 argument2"
и использовать arguments=shlex.split(var)
, а затем просто указать ее в аргументы для подпроцесса.
Другой вариант, если вам не нужно взаимодействовать с программой, будет использовать Threads, и есть много вопросов о переполнении стека о них, а также много документации как официально, так и на других веб-сайтах по всему Интернету.