Как открыть терминал для приема ввода пользователя при запуске скрипта в pythonw.exe - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю с Python3.7.0 на машине Windows 10.

У меня есть программа, которая запускается каждые 5 минут через планировщик задач, и если выполняются определенные параметры (это заданное время дня)Мне требуется пользовательский ввод.В противном случае программа завершается.

Каждые 5 минут, даже если пользовательский ввод не требуется, открывается окно python, поскольку программа запускается через python.exe.

Чтобы избежать этой проблемы, есть ли способ запустить скрипт через pythonw.exe и открыть терминал только тогда, когда требуется ввод пользователя?

Мне понадобится код, который будет функционировать как sudo-код ниже:

if (conditions are met):
    open terminal window
    run program in terminal window
    close terminal window
else:
    do nothing

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Чтобы открыть терминал и запустить пакетные команды, выполните команду bash start cmd.exe /k "more-batch-commands-here" в качестве подпроцесса или используйте модуль os.

process = subprocess.Popen(
    '''start cmd.exe /k "more-batch-commands-here"''', 
    stdout=subprocess.PIPE,
    stderr=None,
    shell=True
)

Редактирование: не заметил, что ввод пользователя не требуется.

Это не точный ответ, который вы ищете.Чтобы открыть окно ввода:

from tkinter import simpledialog
str_ = simpledialog.askstring("Title","Enter a string:")

Предостережение: это может работать не на всех типах машин.Но для Windows 10 это должно работать нормально.

0 голосов
/ 28 февраля 2019

Из псевдокода кажется, что если условия не выполняются, программа ничего не делает.

Я бы предположил, что ваше решение не является правильным, и вам следует убедиться, что программа запускается только тогда, когда вы этого хотите, планировщик Windows легко это поддерживает, см. Документацию .
Вы не предоставили подробную информацию о том, как настроена ваша задача, но в документации есть примеры сценариев, c ++ и XML для выполнения задачи в определенное время каждый день здесь .

...