如何编辑打印到stdout的字符串?

时间:2011-03-30 20:44:03

标签: python printing

如何编辑刚打印的字符串?例如,对于倒数计数器(首先打印30,然后将其更改为29,依此类推)

感谢。

5 个答案:

答案 0 :(得分:6)

打印回车\r,它会将光标移回到行的开头。确保最后不打印换行符\n,因为您无法回溯行。这意味着您必须执行以下操作:

import time
import sys
sys.stdout.write('29 seconds remaining')
time.sleep(1)
sys.stdout.write('\r28 seconds remaining')

(与使用print相反,其中 将新行添加到其写入stdout的内容的末尾。)

答案 1 :(得分:1)

如果您的目标是Unix / Linux,那么“curses”会让编写控制台程序变得非常简单。它处理颜色,光标定位等。查看python包装器: http://docs.python.org/library/curses.html

答案 2 :(得分:0)

如果您使用类似xterm的输出设备,则执行此操作的方法是重写输出。您必须确保在编写数字时以回车符(没有换行符)结束,这会将光标移回行的开头而不会前进到下一行。您编写的下一个输出将替换当前显示的数字。

答案 3 :(得分:0)

您无法更改打印的内容。打印的是什么。但是,就像bradley.ayers说的那样,你可以回到行的开头并在旧值上打印一些新内容。

答案 4 :(得分:0)

您可以使用 readline 模块,该模块还可以提供customized completioncommand history