我有一个Python脚本,我想让它在终端中显示一个从0到100%的递增数字。我知道如何在终端上打印数字,但我怎么能“重写”它们,所以0变成1,1,变成2,依此类推直到100?如何在终端重写输出
回答
打印回车(\r
)不换行重置光标移到行的开头,使得下一个打印覆盖什么已经印刷:
import time
import sys
for i in range(100):
print i,
sys.stdout.flush()
time.sleep(1)
print "\r",
这不会清除线,因此,如果您尝试使用此方法打印减少的数字,您会看到之前打印的剩余文字。您可以通过用空格填充输出或使用其他答案中的某些控制代码来解决此问题。
这个配方here应该证明是有用的。使用该模块作为TC,下面的代码你想要做什么:
from tc import TerminalController
from time import sleep
import sys
term = TerminalController()
for i in range(10):
sys.stdout.write("%3d" % i)
sys.stdout.flush()
sleep(2)
sys.stdout.write(term.BOL + term.CLEAR_EOL)
配方使用terminfo
获取有关终端信息,并在Linux和OS X适用于多个终端。不过,它在Windows上不起作用。 (感谢piquadrat进行测试,根据下面的评论)。
编辑:该配方还提供了使用颜色和重写部分线条的功能。它还有一个现成的文本进度条。
的要求,我在想你的代码Windows(Windows 7,Python 2.7)。输出是“0 1 2 3 4 5 6 7 8 9”。 – 2010-08-15 19:24:55
@piquadrat:非常感谢。 – 2010-08-15 19:53:38
这工作,但它是矫枉过正。 – vy32 2011-02-15 02:46:15
基于this answer,但没有终端控制器:
import time
import sys
for i in range(100):
sys.stdout.write("Downloading ... %s%%\r" % (i))
sys.stdout.flush()
time.sleep(1)
测试GNOME终端(Linux)或视窗控制台上。
提示:不要在IDLE编辑器中运行此示例。
使用blessings package - 清除屏幕(清/ CLS),然后输入:
import sys
from blessings import Terminal
from time import sleep # <- boy, does this sound tempting a.t.m.
term = Terminal()
for i in range(6):
with term.location(term.width - 3, term.height - 3):
print('{}'.format(i))
sleep(2)
if (i == 3):
print('what was I doing, again?')
print('done')
从Cheeseshop上安装它,只是......
pip install blessings
- 1. 我该如何重写程序的终端输出
- 2. 如何查看在终端输出()
- 3. 写终端输出到终端和文件?
- 4. Git终端输出
- 5. bash,重置之前的终端输出
- 6. 如何使cplex不输出到终端
- 7. 如何从终端输出python图形?
- 8. 如何输出值到终端
- 9. 如何将bash输出同时输出到文件和终端?
- 10. Jenkins - 多个终端输出
- 11. 配置Rspec终端输出
- 12. 终端输入不出现
- 13. Python终端输出宽度
- 14. 持久性终端输出
- 15. 格式输出与终端列在C
- 16. 在终端中查看Ruby的输出
- 17. 在GUI中传递终端输出
- 18. 防止在终端输出MongoDB BSON BinData
- 19. 在LISP中防止终端输出
- 20. gnuplot的正在重置终端为默认输出
- 21. 如何在C中使用UNIX终端输入重定向?
- 22. 如何同步终端上的输入和输出?
- 23. Linux终端输出导出错误
- 24. 无论何时打开新终端,在终端上输出路径2.1.1
- 25. 如何在Linux终端中获取sql查询的输出?
- 26. 如何在终端中取消长输出?
- 27. 如何在Python中获取终端输出?
- 28. 如何从终端输出中取出零件?
- 29. 如何在终端中退出命令
- 30. ssh进入终端并保存终端输出到文件
是这个平台独立吗? – 2010-08-15 18:53:21
@ klez:可能不适用于所有终端。它适用于打字机。那个平台对你来说足够独立吗? :) – 2010-08-15 19:08:39
在我可以使用的两个平台(Linux和Windows)上,它可以工作。 – 2010-08-15 19:08:40