#!/usr/bin/env python import random import datetime import time import sys import pathlib def as_millis(s): return s*1000 def take_sample(): waittime = random.randint(0,5) time.sleep(waittime) start=datetime.datetime.now() sys.stderr.write("GO") sys.stderr.flush() input() end=datetime.datetime.now() delta = end - start return as_millis(delta.total_seconds()) def record_metric(avg, log: pathlib.Path): now = datetime.datetime.now() with log.open('a+', encoding='utf-8') as f: f.write(f"{now}\t{avg}\n") f.flush() if __name__ == "__main__": samples = [] n = 5 print("Press Enter when you see GO") for i in range(0, n): samples.append(take_sample()) avg = sum(samples)/n record_metric(avg, pathlib.Path("~/org/reactiontime.log").expanduser()) print(avg)