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