我正在读取串行数据并使用while循环写入csv文件.我希望用户能够在他们认为已经收集到足够的数据后杀死while循环.
while True:
#do a bunch of serial stuff
#if the user presses the 'esc' or 'return' key:
break
Run Code Online (Sandbox Code Playgroud)
我使用opencv做了类似的事情,但它似乎没有在这个应用程序中工作(我真的不想为此函数导入opencv)...
# Listen for ESC or ENTER key
c = cv.WaitKey(7) % 0x100
if c == 27 or c == 10:
break
Run Code Online (Sandbox Code Playgroud)
所以.如何让用户摆脱循环?
另外,我不想使用键盘中断,因为脚本需要在while循环终止后继续运行.
我正在寻找从Python上观看Windows,Linux和Mac上的鼠标和键盘事件的方法.
我的应用程序是一个时间跟踪器.我不是在调查这个事件,我只记录它发生的时间.如果在一定时间内没有事件,例如10分钟,我假设用户已离开并停止当前项目.
当用户返回(事件再次进入)时,我等待片刻(因此不会被清洁人员或您的宠物或地震触发).如果事件持续的时间较长,我假设用户已经返回并弹出一个小的非活动窗口,在那里她可以选择将时间间隔添加到"中断",当前项目(会议等)或一个不同的项目.
我已经使用pyHook解决了Windows的键盘记录器.
在Linux上,我找到了一个解决方案,但我不喜欢它:我可以在/ etc/input中查看所有设备节点,并在每次看到事件时在/ var或/ tmp中的某处更新时间戳.有两个缺点:1.我无法判断事件是否来自运行时间跟踪器的用户和2.这个小程序需要以root身份运行(不好).
在Mac上,我还不知道.
问题:
是否有更好的方法来了解用户是否正在创建事件而不是在Linux上观看事件设备?
任何指针如何在Mac上做到这一点?
我通过使用time time.sleep(3500)的时间模块暂停了一个脚本让我们说3500秒.
现在,我的目标是在脚本处于睡眠状态时扫描按键,我的意思是它在这一行.
如果按下"按下Ctrl + R",我想重新启动脚本.
对于前..考虑
#!/usr/bin/python
import time
print "Hello.. again"
while True:
time.sleep(3500)
Run Code Online (Sandbox Code Playgroud)
现在,当代码在最后一行时,如果我按Ctrl + R,我想重新打印"Hello .. again"行.
我试过EVT_KEY_DOWN但是没有用.有没有办法捕获任何击键,如F1,F2,ENTER和其他.我正在使用框架和面板.