Как скрыть input () в Python 3.6? - PullRequest
       27

Как скрыть input () в Python 3.6?

0 голосов
/ 29 августа 2018

После нажатия введите ввод остается там. Например:

myName = input()
print("My name is:" + myName)

и вывод будет:

Alex
My name is:Alex

Но я хочу отобразить только последний вариант. Я пытался использовать getpass, но он необходим для отображения текста при наборе, а getpass скрывает его. Что я могу сделать?

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

В зависимости от платформы вы можете переместить курсор вверх на строку перед печатью:

myName = input()
print("\x1B[F\x1B[2K", end="")
print("My name is:" + myName)

Средняя линия перемещает курсор вверх и очищает эту строку в терминалах POSIX.

В Windows все усложняется, и вам нужно несколько библиотек для вызова API Windows для достижения этой цели.

0 голосов
/ 29 августа 2018
import sys

myName = input()

sys.stdout.write("\033[F") # Cursor up one line

print("My name is:" + myName)
0 голосов
/ 29 августа 2018

объедините оба утверждения в одно!

myName = input("My Name is: ")

Таким образом, «Меня зовут Алекс» будет напечатано для ввода Алекса. Также Алекс назначен на «myName».

РЕДАКТИРОВАТЬ: Очевидно, что это только обходной путь и не отвечает конкретно на ваш вопрос.

...