相关疑难解决方法(0)

Python从用户读取单个字符

有没有办法从用户输入读取一个单个字符?例如,他们在终端按一个键然后返回(有点像getch()).我知道Windows中有一个功能,但我想要一些跨平台的功能.

python input

242
推荐指数
14
解决办法
25万
查看次数

在python中检测按下了哪些键

我需要知道现在正在按哪个键.我不打算捕获一些特定的键来触发事件或类似的事情,

我想知道现在按下哪些键并显示它们的列表.

我还需要捕捉特殊键,如F1 ... F12,shift,alt,home,windows等.基本上键盘上的所有按键.

我怎么在python中这样做?如何捕获键盘事件?

有关

编辑

只是因为你知道我不想做一个键盘记录器.我正在尝试制作诊断工具(我在笔记本电脑上拆水,键盘开始变得疯狂!!)

python keyboard events

19
推荐指数
2
解决办法
4万
查看次数

如何中断Python程序?

我制作了一个程序,它基本上运行一个循环,如下所示:

while(true):
    i = 0
    while(i < 60):
        i += 1
        time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

我希望能够在运行时暂停它并返回到它(保持i中断时的原样)。目前该程序与获取用户输入无关,它只是在后台运行。有没有一种方法可以暂停正在运行的脚本,使代码保持与我暂停时相同的状态,并能够从该点继续?该程序可以通过 cmd 在 pycharm 或普通 Python 2.7 上运行。
(我对按键记录和线程使用有一些基本知识。所以如果这可行,我愿意尝试一下)。

python

6
推荐指数
1
解决办法
5136
查看次数

ipython笔记本中while循环的优雅中断

我正在ipython笔记本中运行一些数据分析.一台单独的机器收集一些数据并将它们保存到服务器文件夹,我的笔记本会定期扫描该服务器以获取新文件,并对其进行分析.

我在while循环中执行此操作,每秒检查新文件.目前我已将其设置为在分析一些新文件时终止.但是,我希望在按键时终止.

我试过尝试捕捉键盘中断,如下所示:如何通过击键来杀死一个while循环?

但它似乎不适用于ipython笔记本(我使用的是Windows).

使用openCV的keywait对我有用,但我想知道是否有替代方法而不必导入opencv.

我还尝试实现一个中断循环的按钮小部件,如下所示:

from ipywidgets import widgets 
import time
%pylab inline

button = widgets.Button(description='Press to stop')
display(button)

class Mode():
    def __init__(self):
        self.value='running'

mode=Mode()

def on_button_clicked(b):
    mode.value='stopped'

button.on_click(on_button_clicked)

while True:
    time.sleep(1)
    if mode.value=='stopped':
        break
Run Code Online (Sandbox Code Playgroud)

但我发现循环基本上忽略了按下按钮.

interrupt ipython jupyter-notebook ipywidgets

3
推荐指数
1
解决办法
4920
查看次数

使用 Button Jupyter Notebook 终止循环?

我想要:

  • 从串口读取(无限循环)
  • 当按下“STOP”按钮时 --> 停止读取并绘制数据

来自如何通过按键杀死 while 循环? 我以使用键盘中断为例进行中断,这有效,但我想使用按钮。

键盘中断示例

weights = []
times = [] 
#open port 
ser = serial.Serial('COM3', 9600)
try:
   while True: # read infinite loop
       #DO STUFF
       line = ser.readline()   # read a byte string
       if line:
           weight_ = float(line.decode())  # convert the byte string to a unicode string
           time_ = time.time()
           weights.append(weight_)
           times.append(time_)
           print (weight_)
#STOP it by keyboard interup and continue with program 
except KeyboardInterrupt:
   pass
#Continue with plotting
Run Code Online (Sandbox Code Playgroud)

不过我想用一个显示的按钮来做到这一点(更方便人们使用)。我尝试制作一个按钮(在 …

python events button break

3
推荐指数
1
解决办法
2244
查看次数

如何通过检测按键来打破Python中的这个循环

from subprocess import call
try:
    while True:
        call (["raspivid -n -b 2666666.67 -t 5000 -o test.mp4"],shell=True)
        call (["raspivid -n -b 2666666.67 -t 5000 -o test1.mp4"],shell=True)
except KeyboardInterrupt:
    pass
Run Code Online (Sandbox Code Playgroud)

当我按任何按钮时,我打算让它打破循环.但是我尝试了许多方法来打破它们并且没有一个工作.

python python-2.7 raspberry-pi

1
推荐指数
1
解决办法
2万
查看次数