Yes, I am aware of this Dennis. However, but, on my system I actually
had it running without the msvcrt.kbhit()
This occurred during testing while trying different options. And I was
able to reproduce this several times. Why? I do not have an answer. This
is one reason why I posted the code. It would be interesting to know if
anyone else has obtained the same results.
Note: 1) 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:57:36) [MSC v.1900 64
bit (AMD64)]
2) msvcrt is built-in (at least on my system)
On 2018-01-24 18:28, Dennis Lee Bieber wrote:
On Wed, 24 Jan 2018 02:13:35 +0100, Virgil Stokes <v...@it.uu.se>*declaimed* ?
the following:
key = msvcrt.getwch()
NOTE: per documentation, that is a blocking read... It won't return
unless a key (any key) has been pressed. That means your "more work to do"
loop requires a key press for each loop.
Recommendation would be to use kbhit() first.
if msvcrt.kbhit():
key = msvcrt.getwch()
...
Consider
-=-=-=-=-
import msvcrt as ms
import time
ESCAPE = chr(27)
workPending = True
cycle = 0
while workPending:
print("Getting imaginary data %s..." % cycle)
time.sleep(1.5)
print("\tSaving imaginary data %s..." % cycle)
time.sleep(1.5)
if ms.kbhit():
key = ms.getwch()
if key == ESCAPE:
print("Pre-termination on cycle %s..." % cycle)
break
else:
print("Random keypress %r found on cycle %s..." % (key, cycle))
cycle += 1
time.sleep(1.5)
print("Termination")
-=-=-=-=-
C:\Users\Wulfraed\Documents\Python Progs>kbhit
Getting imaginary data 0...
Saving imaginary data 0...
Getting imaginary data 1...
Saving imaginary data 1...
Random keypress u'd' found on cycle 1...
Getting imaginary data 2...
Saving imaginary data 2...
Getting imaginary data 3...
Saving imaginary data 3...
Random keypress u'a' found on cycle 3...
Getting imaginary data 4...
Saving imaginary data 4...
Pre-termination on cycle 4...
Termination
C:\Users\Wulfraed\Documents\Python Progs>
--
https://mail.python.org/mailman/listinfo/python-list