Первая мысль о реализации этого с использованием потоков, но в python нет способа уничтожения потоков. Я прочитал другую тему на тему убийства. Есть ли какой-нибудь правильный независимый от платформы способ сделать это?
Я думаю, вам лучше использовать таймер Tk для периодического звонка, а затем остановить его, когда вы нажмете клавишу.
См. http://www.java2s.com/Code/Python/GUI-Tk/Clockevent.htm для примера использования таймера.
Таким образом, вы избежите создания другого потока.
Можете ли вы быть более конкретным? Это можно сделать в Pygame, но вам нужно открыть графическое окно.