Python 在控制台中动态更改行
我目前正在构建一个小的“聊天机器人”程序,其概念是它应该能够在任何时候异步处理信息和输出。此外,用户可以随时输入 我已经记下了基本的力学原理,但是我很难让它在控制台中看起来很好。我希望它的工作方式如下:Python 在控制台中动态更改行,python,Python,我目前正在构建一个小的“聊天机器人”程序,其概念是它应该能够在任何时候异步处理信息和输出。此外,用户可以随时输入 我已经记下了基本的力学原理,但是我很难让它在控制台中看起来很好。我希望它的工作方式如下: 每次bot输出时,它都应该出现在新的控制台行上 用户文本输入行应该始终位于控制台的最底部,并且(当然)您应该能够看到您正在键入的内容 当用户发送输入时,输入的文本应在控制台中显示为新行,并将创建一个新的输入行 这是我目前正在使用的代码,但它有很多缺陷: def writeToConsole(li
def writeToConsole(line,static=False):
if static:
sys.stdout.write("\r"+line)
else:
print("\r"+line)
当“static”为False时,我希望写一行新行。如果是真的,我希望输入行读作“line”。实际上,所有的static=False行都是在static=True行上写的,但是超过新行长度的字符仍然存在
如果您能帮助我实现我想要的效果,我们将不胜感激。听起来您想要的是将文本控制台划分为不同的区域,并对每个区域的I/O进行不同的处理。在Linux上,您可以使用以下内容。在Windows上,您必须使用或类似的工具。你当然可以不用它来编写你的程序,方法是缓冲终端的所有行,以你想要的方式更新缓冲区,每次都重写屏幕,但是花时间学习诅咒API会让你专注于你的应用程序逻辑,而不是控制台。@robert_x44是的,我在考虑重新绘制整个控制台,但这是我不想求助的功能,因为它只会阻碍进步。我听说过诅咒,但不确定它们的确切功能是什么……谢谢你,我来看看。听起来你想要的是将文本控制台划分为不同的区域,并对每个区域的I/O进行不同的处理。在Linux上,您可以使用以下内容。在Windows上,您必须使用或类似的工具。你当然可以不用它来编写你的程序,方法是缓冲终端的所有行,以你想要的方式更新缓冲区,每次都重写屏幕,但是花时间学习诅咒API会让你专注于你的应用程序逻辑,而不是控制台。@robert_x44是的,我在考虑重新绘制整个控制台,但这是我不想求助的功能,因为它只会阻碍进步。我听说过诅咒,但不确定它们的确切功能是什么…谢谢你,我来看看。