I am trying to create a program that accepts user input, but instead of displaying the actual input, I would like to replace the input with
I tried using this code, but I keep getting the error below, I would appreciate any guidance or help.
import msvcrt import sys def userinput(prompt='>'): write = sys.stdout.write for x in prompt: msvcrt.putch(x) entry = "" while 1: x = msvcrt.getch() print(repr(x)) if x == '\r' or x == '\n': break if x == '\b': entry = entry[:-1] else: write('*') entry = entry + x return entry userEntry = userinput()
Error:
Traceback (most recent call last): File "C:\Users\Mehdi\Documents\Teaching\KS5\AS CS\getPass.py", line 24, in <module> userEntry = userinput() File "C:\Users\Mehdi\Documents\Teaching\KS5\AS CS\getPass.py", line 9, in userinput msvcrt.putch(x) TypeError: putch() argument must be a byte string of length 1, not str
Sarah source share