Python Windows cmd控制台停止打印

Python Windows cmd控制台停止打印,python,windows,cmd,Python,Windows,Cmd,当我在控制台窗口中单击时,一个正在打印的python代码片段暂停,如果我按Enter键,它将继续打印。这使得我的GUI程序也在控制台中打印一些东西而没有响应,然后我必须在控制台中按一个键。如何修复它 import time import random running = True while running: try: r = random.randint(1, 100) print 'hello %s' % r time.sleep(2

当我在控制台窗口中单击时,一个正在打印的python代码片段暂停,如果我按Enter键,它将继续打印。这使得我的GUI程序也在控制台中打印一些东西而没有响应,然后我必须在控制台中按一个键。如何修复它

import time
import random

running = True
while running:
    try:
        r = random.randint(1, 100)
        print 'hello %s' % r
        time.sleep(2)
    except KeyboardInterrupt:
        running = False

我认为这是出于设计,因为您的控制台窗口正在运行模式。谢谢您的提示。不客气。Re:您的答案是正确的,但我相信添加解释,无论是纯文本还是代码注释,都会增加它的价值。我还建议您在所有异常情况下恢复以前的控制台模式,而不仅仅是键盘中断。
import time
import random
import ctypes


win32 = ctypes.windll.kernel32
hin = win32.GetStdHandle(-10)
mode = ctypes.c_int(0)
win32.GetConsoleMode(hin, ctypes.byref(mode))
old_mode = mode.value
# disable Windows console(cmd.exe) quick edit mode
new_mode = old_mode & (~0x0040)
win32.SetConsoleMode(hin, new_mode)


running = True
while running:
    try:
        r = random.randint(1, 100)
        print 'hello %s' % r
        time.sleep(1)
    except (Exception, KeyboardInterrupt):
        win32.SetConsoleMode(hin, old_mode)
        running = False