gpt4 book ai didi

python - 如何在等待python输入时有更新提示?

转载 作者:行者123 更新时间:2023-11-28 19:11:43 24 4
gpt4 key购买 nike

所以问题是如何让输入函数或 stdin.readline 函数等待输入,同时有更新提示,即提示包含格式为 HH:MM:SS 的时间,并且每秒刷新一次,如:

while 1:
sys.stdout.write('\r' + time.strftime(TIME_FORMAT) + ' :>')
time.sleep(1.0)

但是一旦你在那里添加了一个输入,程序当然会等到你写一些输入。我使用的python版本是3.5。

我知道我应该使用 curses,但我打算编写一个跨平台程序,我找到的唯一模块是 clint,但它在更新提示的文档中没有任何内容。

我发现了一些非常接近但有不同问题的东西:

def input_thread(L):
x = input()
L.append(x)

L = []
thread = threading.Thread(target=input_thread, args=(L,))
thread.start()
while 1:
sys.stdout.write('\r' + time.strftime(TIME_FORMAT) + '>:')
time.sleep(1.0)
sys.stdout.flush()

现在问题仍然存在,当您键入输入但不按 ENTER 键时,下一次迭代的输入仍然存在,但是当您写东西时,先前的输入会被当前输入替换。当然,先前的输入仍然存在于参数 L 中,因此没有丢失输入。我希望我没有将此描述为令人困惑。

如果没有像使用 curses 那样简单的方法可以做到这一点,我愿意使用类似的交叉打开工具。感谢您的宝贵时间和答复!

最佳答案

所以,几个月前我想出了我想要的东西,但没有回答我自己的问题。

要提示更新时间,您需要一个单独的线程:

  1. 使用附加输入更新提示
  2. 捕获你的击键

第二个线程处理每个击键,您可以对其编程如何处理按下的键。

当按下一个键时,更新提示的线程会添加按下的键。此外,您还必须为 Return、Backspace 等配置一些快捷方式......才能按预期工作

我已经让它工作了,不幸的是......我不喜欢它。如果有人想看我很乐意提供的代码。

关于python - 如何在等待python输入时有更新提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39272920/

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