Question: Using the following code: 

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

```

one can measure time between "start" and "end". What about measuring the time between specific keystrokes? Specifically, if a module was run and the user started typing something, how can python measure the time between the **first** keystroke and the **enter key**. Say I ran this script and it said: "Please enter your name, then press enter: ". I write Nico, and then press enter. How can I measure time between "N" and the enter key. This should be in seconds, and after pressing enter, the script should end.

Answer: 
This will work (on some systems!):

```
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

```

See [this answer](https://stackoverflow.com/questions/2408560/python-nonblocking-console-input) for nonblocking console input on other systems.
On Windows you can you [msvcrt.kbhit()](http://docs.python.org/library/msvcrt.html#msvcrt.kbhit) to tell when a key has been pressed. See <http://effbot.org/librarybook/msvcrt.htm> for a worked-out example.