gpt4 book ai didi

python从命令行获取箭头键

转载 作者:太空宇宙 更新时间:2023-11-03 11:03:55 24 4
gpt4 key购买 nike

我有一个应该与用户输入(按箭头键)交互的脚本,但我无法获取键。我尝试了 raw_input 和其他一些功能,但它们没有用。这是我的示例代码,它应该是什么样子(running bool 可以在另一个函数中设置为 False)

running = True
while running:
#if input == Arrow_UP:
# do_Sth
#elif ...
display()
time.sleep(1)

另一个问题是,如何每秒只调用一次显示函数,但立即对输入使用react?

最佳答案

有不同的情况:

  • 如果您使用图形前端,例如 TKinterPyGame ,可以给方向键绑定(bind)一个事件,等待这个事件。

    取自 this answer 的 Tkinter 示例:

    from Tkinter import *

    main = Tk()

    def leftKey(event):
    print "Left key pressed"

    def rightKey(event):
    print "Right key pressed"

    frame = Frame(main, width=100, height=100)
    main.bind('<Left>', leftKey)
    main.bind('<Right>', rightKey)
    frame.pack()
    main.mainloop()
  • 如果您的应用程序停留在终端中,请考虑使用 cursesthis answer 中所述

    Curses 旨在创建在终端(Linux 下)中运行的界面。

  • 如果使用curses,进入应用程序时终端内容会清空,退出时恢复。如果您不想要这种行为,您可以使用 getch() 包装器,如 this answer 中所述。 .使用 getch = _Getch() 初始化 getch 后,您可以使用 key = getch()

  • 存储下一个输入

至于如何每秒调用 display() ,这又取决于具体情况,但是如果您在终端中的单个进程中工作,则该进程在等待时将无法调用您的 display() 函数一个输入。解决方案是为 display() 函数使用不同的线程,如

import threading;

def display ():
threading.Timer(1., display).start ();
print "display"

display ()

这里 display 每次被调用时都会在未来一秒钟安排自己。您当然可以围绕此调用设置一些条件,以便在满足某些条件时进程停止,在您的情况下已给出输入。引用this answer进行更深入的讨论。

关于python从命令行获取箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25298923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com