python 3.x - msvcrt.getch() returning b'a' instead of 'a'? -
i have following code 1 class:
class _getch: def __init__(self): self.impl = _getchwindows() def read_key(self): return self.impl() class _getchwindows: def __init__(self): import msvcrt def __call__(self): import msvcrt return msvcrt.getch() and have class imported _getch. within other class, tried use read_key provided _getch things in conditional:
r = _getch() key = r.read_key() print(key) if key = 'a': #do things elif key = 's': # other things else: continue when tried input 'a', expecting key 'a', returned b'a' instead. thus, key not fulfill of conditionals, , go continue. why did return b'a'? can make return 'a' instead?
according documentation, msvcrt.getch() returns byte-string.
so need use bytes.decode() method on turn unicode string. hint: if this, should environments encoding , use instead of default utf-8. or can use errors='replace'.
or can change code compare b'a' instead.
n.b.: there syntax error in code; should use == (a comparison operator) in if statement instead of = (assign).
Comments
Post a Comment