【发布时间】:2011-03-26 02:25:26
【问题描述】:
基本上我想做与这家伙做的相反的事情......呵呵。
Python Script: Print new line each time to shell rather than update existing line
我有一个程序告诉我它走了多远。
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
因此,如果 len(some_list) 为 50,我会将最后一行打印 50 次。我想打印一行并不断更新该行。我知道我知道这可能是你整天读到的最蹩脚的问题。我只是想不通我需要输入谷歌才能得到答案的四个词。
更新!我尝试了 mvds 的建议,这似乎是正确的。新代码
print percent_complete," \r",
百分比完成只是一个字符串(我第一次抽象,现在我试图成为文字)。现在的结果是它运行程序,直到程序结束后才打印任何内容,然后仅在一行上打印“100% 完成”。
如果没有回车(但有逗号,mvds 建议的一半),它直到最后什么都不打印。然后打印:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
等等。所以现在的新问题是逗号在程序完成之前不会打印。
使用回车且不带逗号时,其行为与不带逗号完全相同。
【问题讨论】:
-
您可能还想检查
sys.stdout.isatty(),这样您就不会在不在终端中运行时吐出这些东西。 -
我正在从终端运行它......不过想法很好。我确定我会在某个时候需要它。
-
背景是,顺便说一句,在几种语言中,\n(我们现在省略)用作刷新到标准输出的隐式信号。否则很多人会感到困惑。