通过更新已输出的行打印一行
如果标题不太清楚,请原谅我,因为我实在想不出更好的描述方式。
假设我在一个循环里,每次运行的时候都会让 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
的模块。