Python автоматически запускает программу без открытия оболочки - PullRequest
0 голосов
/ 05 июня 2018

Я использую пакет ApScheduler в Python, чтобы запланировать запуск программы каждый час.Однако окно оболочки никогда не закрывается, и если я закрываю его вручную, программа завершается.Есть ли способ, которым я могу запланировать программу на Python, не видя окна, когда код не работает?Кроме того, в .pyw окно никогда не отображается.Поэтому я хочу, чтобы окно было открыто во время цикла, а затем было закрыто до следующего запуска.

1 Ответ

0 голосов
/ 05 июня 2018

Если вы хотите открыть или скрыть окно на досуге, вы должны использовать пакет GUI, такой как TkInter .Затем следуйте этому уроку на , как показать или скрыть окно с помощью TkInter .

Если вы запустите скрипт с pythonw.exe или сохраните скрипт как .pyw, окно терминала будетбыть скрытым

Вам просто нужно открыть скрипт задания, используя pythonw.exe.

Две строки в командной строке, чтобы настроить все файлы Python для открытия с ним. Документация Python - 3.3.4 Выполнение сценариев

  1. Запустите командную строку.
  2. Свяжите правильную группу файлов со сценариями .py: assoc .py=Python.File
  3. Перенаправить все файлы Python на новый исполняемый файл: ftype Python.File=C:\Path\to\pythonw.exe "%1" %*

Если вам нужно закрыть скрипт, но окно скрыто, вы можете использовать модуль psutilчтобы узнать, какой исполняемый файл выполняет ваш скрипт, возьмите PID и убейте его.

import psutil

scripts = [[" ".join(p.cmdline()), p.pid] for p in psutil.process_iter()
        if p.name().lower() in ["python.exe", "pythonw.exe"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...