通过更新已输出的行打印一行

1 投票
2 回答
693 浏览
提问于 2025-04-16 03:55

如果标题不太清楚,请原谅我,因为我实在想不出更好的描述方式。

假设我在一个循环里,每次运行的时候都会让 counter 增加1。

output_string = 'Enter the number [{0}]'.format(counter)

当我用 print output_string 打印的时候,输出会像这样:

Enter the number [1]: 

如果我再打印这一行,增加了数字,比如:

Enter the number [2]:

那么它当然会在第一行之后继续输出,累计的结果会是:

Enter the number [1]:
Enter the number [2]:

但是,我并不想这样。我希望第一行能够被更新,而不是添加新的一行,输出应该只在第一行内改变。

比如,它应该显示 Enter the number [1]:,然后在这行内直接替换成 Enter the number [2],而不增加额外的行。

我希望我说得很清楚。我这样做的原因是因为我需要从用户那里输入大量数据,而我不想让终端变得杂乱,能够在一行内不断更新我想要的内容就很好了。

2 个回答

1

试试这个

print('enter the number[1]', end='\r' )

如果你在用Python 2.7,别忘了加上 from __future__ import print_function 这行代码。

1

如果你的脚本是在Unix/Linux系统上运行的话,你可以使用这个叫做curses的模块

撰写回答