Настройвам
Играх си със скрипт, за да насоча tail -f
и да маркирам определени ключови думи. Не е голям проект, но нещо, което намирам за полезно.
В момента основният цикъл е основно:
...
line = True
while line:
line = sys.stdin.readline()
sys.stdout.write(highlight(line))
...
Бих искал да слушам за определени натискания на клавиши по време на този цикъл, за да отпечатам маркерна линия в дневника. Методът, който открих и който изглежда, че ще работи за получаване на натискане на клавиш, е описан на http://code.activestate.com/recipes/134892/, но той чете един знак наведнъж от stdin, което няма да работи, когато главният ми цикъл чете цели редове от него.
Въпрос
Има ли начин в Python да слуша за натискания на клавиши, като същевременно чете въведени канали?
Увих основната функция в блок try
, който изключва KeyboardInterrupt
и отпечатва хубаво малко съобщение за сбогом вместо проследяване на стека за грешка. Има ли начин да се използва това поведение с друг ключ?
Предпочитам да не използвам силен (в сравнение с моя малък скрипт) модул като pygame или tkinter и да бъда принуден да използвам основния им цикъл само за да получа достъп до натискания на клавиши. (също така не съм запознат с това как би се държал който и да е от тях, когато получава вход по канал)