В моем случае принятый ответ не сработал.
Я начал с
START = '\x1b[7m\x1b[37m' # white on black
END = '\x1b[0m' # reset
response = input(START + 'QUERY ' + END)
, что также привело к
QUERY hello my name is hello my name is
^ ^
hello my name is hello my name is
Использование решения выше,
print(START + 'QUERY ' + END, end='')
response = input()
привело к тому, что строка начиналась с начала
QUERY hello my name is hello my name is
^ ^
hello my name is hello my name is
, вероятно, из-за того, что input("")
имеет длину 0 символов.
Зная, чтоэти управляющие символы учитываются как смещение, мы можем просто использовать их для повторного создания смещения.
Мой текст, QUERY
имеет длину 6 символов, поэтому я мог бы использовать
print(START + 'QUERY ' + END, end='')
response = input('\033[D\033[C')
, потому что Курсор Вперед, Курсор Назад '\033', '[', 'D'
, '\033', '[', 'C'
обманывает readline
для смещения 6 символов.
QUERY hello my name is hello my name is
\[D\[C^ ^
hello my name is hello my name is