[vcf-midatlantic] Why {vintage} Basic beats Python
Dan Roganti
ragooman at gmail.com
Sun Feb 19 13:18:55 EST 2017
On Sun, Feb 19, 2017 at 12:13 AM, Douglas Crawford via vcf-midatlantic <
vcf-midatlantic at lists.vintagecomputerfederation.org> wrote:
> :)
> How to poll the keyboard for a keypress, non blocking.
>
> Python <http://rosettacode.org/wiki/Category:Python>
>
> #!/usr/bin/env python
> import __future__import sysif sys.version_info.major < 3:
> import thread as _threadelse:
> import _threadimport time
>
> try:
> from msvcrt import getch # try to import Windows versionexcept ImportError:
> def getch(): # define non-Windows version
> import tty, termios
> fd = sys.stdin.fileno()
> old_settings = termios.tcgetattr(fd)
> try:
> tty.setraw(sys.stdin.fileno())
> ch = sys.stdin.read(1)
> finally:
> termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
> return ch
>
> char = None
> def keypress():
> global char
> char = getch()
>
> _thread.start_new_thread(keypress, ())
> while True:
> if char is not None:
> print("Key pressed is " + char.decode('utf-8'))
> break
> print("Program is running")
> time.sleep(5)
>
> PureBasic <http://rosettacode.org/wiki/Category:PureBasic>
>
> Returns a character string if a key is pressed during the call of Inkey().
> It doesn't interrupt (halt) the program flow.
>
> If special keys (non-ASCII) have to be handled, RawKey() should be called
> after Inkey().
>
> k$ = Inkey()
>
>
>
I use python for some little things here too
Never having tried this in python, so I had to look this up
not sure where that code which you found came from
I just looked on the python org website
And there appears to be a "getkey" library
https://pypi.python.org/pypi/getkey/0.6.5
eg.
from getkey import getkey, keys
key = getkey()
if key == keys.UP:
... # Handle the UP key
elif key == keys.DOWN:
... # Handle the DOWN key
else:
# Handle other text characters
buffer += key
print(buffer)
More information about the vcf-midatlantic
mailing list