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