测量python中击键之间的时间

时间:2012-02-03 18:52:50

标签: python

使用以下代码:

   >>> import time
   >>> start = time.time()
   >>> end = time.time()
   >>> end - start

可以测量“开始”和“结束”之间的时间。如何测量特定按键之间的时间?具体来说,如果运行模块并且用户开始输入内容,python如何测量第一次击键和输入键之间的时间。假设我运行了这个脚本并说:“请输入你的名字,然后按回车:”。我写Nico,然后按回车键。如何测量“N”和回车键之间的时间。这应该是几秒钟,按下回车后,脚本应该结束。

3 个答案:

答案 0 :(得分:2)

这将有效(在某些系统上!):

import termios, sys, time
def getch(inp=sys.stdin):
    old = termios.tcgetattr(inp)
    new = old[:]
    new[-1] = old[-1][:]
    new[3] &= ~(termios.ECHO | termios.ICANON)
    new[-1][termios.VMIN] = 1
    try:
        termios.tcsetattr(inp, termios.TCSANOW, new)
        return inp.read(1)
    finally:
        termios.tcsetattr(inp, termios.TCSANOW, old)


inputstr = ''
while '\n' not in inputstr:
    c = getch()
    if not inputstr: t = time.time()
    inputstr += c
elapsed = time.time() - t

有关其他系统上的非阻塞控制台输入,请参阅this answer

答案 1 :(得分:1)

你能做到的一个简单方法是:

from time import time
begin = time.time()
raw_input() #this is when you start typing
#this would be after you hit enter
end = time.time()
elapsed = end - begin
print elapsed
#it will tell you how long it took you to type your name

答案 2 :(得分:0)

在Windows上,您可以msvcrt.kbhit()告诉我何时按下某个键。有关已完成的示例,请参阅http://effbot.org/librarybook/msvcrt.htm