Python: Função para pegar um caractere do teclado
Em raras ocasiões tive a necessidade de ter uma função para pegar apenas um caractere do teclado. Me lembro que no Quick Basic, uma das minhas primeiras linguagens de programação, havia uma função getchar ou algo parecido. Esta função é bem útil quando se desenvolve programas para console, sem as modernas interfaces gráficas.
Estava implementando uma função para criar scripts automatizada, a qual fazia diversas perguntas de sim/não, dai a necessidade da função. Depois de uma busca pela rede encontrei este código abaixo, que me foi útil por algum tempo.
Trabalhando mais no programa acabei por remover o código, pois ficou sem aplicação para a forma que implementei o programa, seguindo mais o padrão dos comandos do unix. Para não perder esta pérola, coloco mais uma cópia do código na rede.
import sys, os, tty, termios
TERMIOS = termios
def getkey():
'''getkey(): one key'''
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~TERMIOS.ICANON & ~TERMIOS.ECHO
new[6][TERMIOS.VMIN] = 1
new[6][TERMIOS.VTIME] = 0
termios.tcsetattr(fd, TERMIOS.TCSANOW, new)
c = None
try:
c = os.read(fd, 1)
finally:
termios.tcsetattr(fd, TERMIOS.TCSAFLUSH, old)
return c
Infelizmente perdi a referência do autor, mas se alguém encontrar, por favor me repasse para dar o devido mérito.
Deixe uma resposta