遇到了一个神奇的问题,麻烦各位大佬看一下,灰常感谢(鞠躬.jpg)
描述比较长,麻烦大佬忍耐一下(捂脸.jpg),我已经很努力的描述清楚了,再次感谢各位大佬(再次鞠躬.jpg)。
先贴代码:
import pythoncom
import pyHook
def onKeyboardEvent(event):
minput = str(event.Key)
if minput == "Y":
print("hello",end='')
else:
print(minput,end='')
return True
def main():
# 创建一个“钩子”管理对象
hm = pyHook.HookManager()
# 监听所有键盘事件
hm.KeyDown = onKeyboardEvent
# 设置键盘“钩子”
hm.HookKeyboard()
# 进入循环,如不手动关闭,程序将一直处于监听状态
pythoncom.PumpMessages()
if __name__ == "__main__":
main()
描述下异常:
因为不想让print自动输出换行,所以加了 end=‘’
但是当使用键盘监听后,print 加 end=‘’ 不能正常输出
但是 print 输出字符里含有 '\n' 时,加 end=‘’ 可以正常输出。
当单独运行(无键盘监听)后,print 一切正常。(下面是详细描述)
异常详细描述:
运行上面程序后,无论按什么键,都无任何输出。
当把 print("hello",end='')
改为 print("hello") 后,
按其他键无输出,当按 Y 时,会将前面按的键和“hello”一起输出。
例:依次按下 ASD123 此时无输出,接着按下 Y ,此时输出 ASD123hello 。如下图:
当把 print(minput,end='')
改为 print(minput) 后,一切正常,如下图:
我接着通过多次尝试发现:
print("hello\n",end='') 和 print("\nhello",end='') 可以像 print("hello") 一样正常输出。
其他情况均不能正常输出。
并且正常输出后,会把前面不正常未输出的值一起输出。
似乎是只要没有 ‘\n’ 就无法正常输出,有 ‘\n’ 才能正常输出。
但是单独运行 print("hello",end='') 很正常 如下图:
请问各位大佬这是怎么回事啊!该怎么解决啊!或者用什么办法可以实现 键盘输入一个字符 屏幕显示一个字符的(在同一行显示)。
谢谢~~~