Как изменить input в Python?
Пользователь вводит какой-то текст в терминале, например, слово "hello", но каждый введенный символ заменяется на желаемый мной, например "joke", причем после написания "joke" введенные пользователем символы просто стираются.
Пошаговый пример:
1a. h
1b. j
2a. je
2b. jo
3a. jol
3b. jok
4a. jokl
4b. joke
5a. jokeo
5b. joke
Как я могу это реализовать?
Ответы (1 шт):
Я не нашел способа сделать это только встроенными модулями, но вы можете подключить модуль keyboard с помощью команды:
pip install keyboard
Данный модуль позволяет перехватывать ввод с клавиатуры, поэтому введенные символы не будут отображаться по умолчанию. Для того чтобы вводить собственные символы при вводе с клавиатуры, можно использовать print(char, end = '') или stdout.write(char).
Пример кода:
from sys import stdout
import time
import keyboard
joke = 'joke'
n = -1
print('Input a hello:')
while True:
t = keyboard.read_key()
n += 1
if n < len(joke):
stdout.write(joke[n])
stdout.flush()
#задержка для того, чтобы долгое нажатие читалось как одно нажатие
time.sleep(.1)
Также стоит отметить модуль pynput. Он также предоставляет возможность обрабатывать ввод каждой клавиши, но в более удобном виде. Примеры использования есть в документации к модулю.