gpt4 book ai didi

python - 在命令行应用程序中打印标准输出而不覆盖待处理的用户输入

转载 作者:行者123 更新时间:2023-12-01 06:17:30 25 4
gpt4 key购买 nike

在基本的 Unix-shell 应用程序中,如何在不干扰任何待处理的用户输入的情况下打印到标准输出。

例如下面是一个回显用户输入的简单 Python 应用程序。在后台运行的线程每 1 秒打印一个计数器。

import threading, time

class MyThread( threading.Thread ):
running = False
def run(self):
self.running = True
i = 0
while self.running:
i += 1
time.sleep(1)
print i

t = MyThread()
t.daemon = True
t.start()
try:
while 1:
inp = raw_input('command> ')
print inp
finally:
t.running = False

请注意线程如何在用户键入时破坏显示的用户输入(例如 hell1o wo2rld3)。您将如何解决这个问题,以便 shell 写入新行,同时保留用户当前键入的行?

最佳答案

您必须将代码移植到某种控制终端的方式,这种方式比电传打字机稍微好一点——例如与 curses Python 标准库中的模块,或者在发出输出之前将光标移开的其他方法,然后将其移回用户忙于输入内容的位置。

关于python - 在命令行应用程序中打印标准输出而不覆盖待处理的用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440387/

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