基本上,我想做与这个人相反的事情... 嘿嘿。
Python脚本:每次将新行打印到shell而不是更新现有行
我有一个程序告诉我它进行了多少进度。
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
如果some_list的长度为50,那么最后一行将被打印50次。我想打印一行并保持更新该行。我知道这可能是你今天读到的最无聊的问题。我只是无法弄清楚需要在Google中输入哪四个单词才能得到答案。
更新!我尝试了mvds的建议,似乎是正确的。 新代码:
print percent_complete," \r",
百分比完成只是一个字符串(第一次我进行了抽象,现在我尝试更加字面)。现在的结果是它运行程序,在程序结束之前不打印任何东西,然后仅在一行上打印“100%完成”。
没有换行符(但有逗号,mvds建议的一半),它在结束时什么也不打印。然后打印:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
等等,现在的问题是有逗号时程序只会在结束后才打印出结果。
使用回车但不带逗号时,输出的行为与两者都不用时完全相同。
sys.stdout.isatty()
,这样当程序不在终端运行时就不会输出这些东西。 - mvds