在任何时间任何地方暂停/停止/命令Python脚本的最佳方法是什么?

2024-03-29 09:49:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python脚本在命令行中运行selenium框架,并连续运行来控制Chrome做后台数据处理和监视。我的简化代码结构如下

while True:
    Do_task1() # a blocking function
    Do_task2() # another blocking fucntion
    ... # calling many blocking functions below, including wait(), time.sleep()

我需要一种随时随地中断脚本的方法来暂停、安全终止并发出命令。最好的方法是什么? 我想过并尝试过几种方法,但我不确定如何处理:

  1. 我试过了:

    ^{pr2}$

    在while循环中,但是它必须在对我的按键做出反应之前通过一堆阻塞调用。这个命令并不是实时接受我的键盘输入,也就是说,我会输入一个字符输入,我想它会在后台缓冲区中,一旦代码执行到上面的代码,它就会开始工作。 对于终止脚本,我只需在CMD窗口中执行Ctrl-C操作,我认为这不是最好的方法,我应该正确地结束程序结束后台进程,比如Chromedriver。

  2. 我想有一个以某种方式异步运行的GUI,我可以用按钮暂停和终止脚本。但我不太清楚该怎么做,或者这是否是个好主意。欢迎提出任何建议。

  3. 使用脚本监视/工作流监视框架,如AirBnB's Airflow或Luigi。我对此只做了简短的研究。

A related question但我不需要精确地返回它离开的地方


Tags: 方法代码命令行命令脚本框架trueselenium