停止运行部分代码的最有效方法

时间:2018-08-21 15:28:30

标签: python python-3.x artificial-intelligence

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

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

1 个答案:

答案 0 :(得分:1)

select系统调用是一种非常有效的方法,可以等待文件准备就绪后再读取:

h = {0=>{:occurrences=>1, :className=>"class"}, 3=>{:occurrences=>3, :className=>"hello"}, 5=>{:occurrences=>3, :className=>"nah"}}

new_h = h.map do |k, v| 
  if v[:occurrences] > 2
    v[:occurrences] += 1 
  end

  [k, v]
end.to_h

一旦读取import select import sys while True: reads, _, _ = select.select([sys.stdin], [], [], 3) if reads: line = reads[0].readline() if line.strip().lower() == "hello": # do a thing print("hi") ,并且执行了函数或过程,您的程序将返回读取hello

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