0

我正在使用Python3.7.0Windows 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
4

2 回答 2

0

从伪代码看来,如果条件不满足,程序什么也不做。

我建议您的解决方案不正确,您应该确保程序仅在您需要时运行,Windows 调度程序很容易支持,请参阅文档您没有提供有关如何设置任务的详细信息,但文档中有关于脚本、c++ 和 XML 的示例,可在此处
每天特定时间运行任务。

于 2019-02-28T07:57:29.653 回答
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,这应该可以正常工作。

于 2019-02-28T08:09:54.180 回答