Python实现开关控制程序运行

需求

想实现一个控制程序运行开关的功能:按一下键盘某个键(或者鼠标)后程序开始运行,再次按下,程序结束运行。

标题

由于本人技术有限,只能用已知的知识解决问题了。控制开始运行可以用阻塞,但是程序运行时就不能用阻塞了,一开始想用循环+读取键盘状态,奈何搜了半天都搜不到python怎么读取键盘状态(顺便吐槽一下现在的博客好多转发,一模一样的内容太多了)。又用pygame试了一下不行,不知道为什么pygame.get_pressed()这里不起作用,导致break不出去。

#失败代码
import keyboard
from time import sleep
from pygame import init,event,key,K_k

init()
while 1:
    print(0)
    keyboard.wait('k')

    while 1:
        if not key.get_pressed()[K_k]:
            print("T")
            sleep(1)
        else:
            print("breaked")
            sleep(1)
            break

解决

算了,用多线程搞搞,总感觉有更简单的方法啊啊

import threading
import keyboard
from time import sleep

going = False

def switch():
    global going
    while 1:
        keyboard.wait('k')		#这里暂时用的K键控制
        going = not going
        sleep(1)

if __name__ == "__main__":
    t = threading.Thread(target=switch)
    t.setDaemon(True)
    t.start()

    while 1:
        print("going ==",going)
        if going:
            print("program_running")
        sleep(0.5)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值