停止代码运行的最高效方法

我正在用Python编写一个个人助理程序。目前,我正在规划所有要做的事情,但遇到了一个无法解决的问题。

我将运行一个主脚本,每3秒检查一次用户是否说了'Hello'。如果用户说了,那么它应该开始运行另一个脚本/函数,并停止当前的脚本。任务完成后,它应该再次开始运行主脚本(我将为每个任务使用不同的脚本以使代码更清晰)。我曾考虑过使用while循环,但不确定这是否是最佳选择。


回答:

select系统调用是一种非常高效的方法,可以在文件准备好读取之前等待,然后再执行操作:

import selectimport syswhile True:    reads, _, _ = select.select([sys.stdin], [], [], 3)    if reads:        line = reads[0].readline()        if line.strip().lower() == "hello":            # 执行某个操作            print("hi")

一旦读取到hello,并执行了你的函数或进程,程序将返回到读取stdin的状态。

请注意,这适用于POSIX系统,但不适用于Windows(除了套接字之外)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注