С также subprocess.call
или subprocess.Popen
, выполнение команды оболочки делает окно оболочки quicky, появляются и исчезают.
Как я могу выполнить команду оболочки без окна оболочки?
Я полагаю, что ваше наблюдение ограничено Windows, поскольку я считаю, что это единственная платформа, на которой вы столкнетесь с проблемой "вспышки консоли". Если да, то в документах предлагается следующий полуцелевой параграф:
Флаги информации о запуске и создания, если данный, будет передан базовая функция CreateProcess (). Они могут указывать такие вещи, как внешний вид главного окна и приоритет для нового процесса. (Windows only)
К сожалению, онлайн-документы Python не воспроизводят соответствующую часть документации Windows API, поэтому вам придется найти их в другом месте, например начиная с здесь в MSDN, что приводит вас сюда для флагов создания
и, в частности, в
CREATE_NO_WINDOW
0x08000000
Процесс является консольным приложением который запускается без консоли окно. Следовательно, ручка консоли для приложения не установлен.
Итак, добавление creationflags = 0x08000000
к вашему вызову Popen
должно помочь (к сожалению, у меня нет компьютера под управлением Windows, на котором можно это опробовать, поэтому вам придется попробовать это сами).