替换Python 2.7中的打印语句

替换Python 2.7中的打印语句,python,python-2.7,Python,Python 2.7,如何替换Python 2.7中的打印语句,例如: for i in range(100): print i,"% Completed" #Result Must Be: >>> 1 % Completed 必须用2替换1,以此类推。但不能在不同的行中或在同一行中追加 我试着搜索了一下,找到了如下解决方案 from __future__ import print_function print("i: "+str(i),end="\r") 但它们会产生附加的打印语句

如何替换Python 2.7中的打印语句,例如:

for i in range(100):
    print i,"% Completed"

#Result Must Be:
>>> 1 % Completed 
必须用2替换1,以此类推。但不能在不同的行中或在同一行中追加

我试着搜索了一下,找到了如下解决方案

from __future__ import print_function
print("i: "+str(i),end="\r")
但它们会产生附加的打印语句。我的
print\u功能中是否有任何更正
或是否有其他解决方案?

给您:

from __future__ import print_function

for i in range(100):
    print('{0}% Completed\r'.format(i), end='')
print('100% Completed')

如果您真的想让它工作几秒钟,请设置一个更高的范围。

您想这样做吗:

>>> import sys, time
>>> for i in range(100):
...     time.sleep(0.1)
...     sys.stdout.write('%d %% Completed \r' % (i,))
...     sys.stdout.flush()

不知道你想要什么结果。你想让每一条语句都以单行的形式在循环中打印吗?我想让打印的语句被新语句替换,而不是在新行或附加语句中。例如,
1%完成
必须变成
2%完成
,但不是
1%完成2%完成
你不能用
(I+1)替换
I
在打印语句中?@TomKarzes我不想要多行打印行或语句,我想要替换输出。对不起,我想要替换输出,而不是附加。@craziesshacker我的代码确实替换了输出,你在说什么?所以,你的回答与此无关,因为我的问题清楚地说明了替换输出语句,但不要附加它。@craziesshacker输出被替换,而不是附加。你做错了。很抱歉,我想替换输出,而不是附加输出。@CraziestHacker你运行了这个吗?是的,正如你发布的那样it@CraziestHacker我没有看到它附加到我的shell上以前的输出中。你错过了字符串末尾的
\r
了吗?@CraziestHacker:m我想你是在IDE中运行代码,而不是在shell终端中运行代码?