如何在pythonw.exe中运行脚本时打开终端以接受用户输入

时间:2019-02-28 07:47:22

标签: python command-line windows-10 scheduled-tasks pythonw

我正在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 :(得分:0)

从伪代码看来,如果不满足条件,程序将 没有。

我建议您的解决方案不正确,您应该确保仅在需要时运行程序,Windows Scheduler轻松地支持该程序,请参阅documentation
您没有提供有关如何设置任务的详细信息,但是文档中提供了示例脚本,c ++和XML的示例,这些脚本可以在每天here的特定时间运行任务。

答案 1 :(得分:0)

要打开终端并运行批处理命令,请执行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,这应该可以正常工作。