【问题标题】:Replace printed statements in Python 2.7 [duplicate]替换 Python 2.7 中的打印语句 [重复]
【发布时间】:2015-12-17 15:51:36
【问题描述】:

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

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

#Result Must Be:
>>> 1 % Completed 

1 必须替换为 2,依此类推。但不能在不同的行或附加在同一行。

我尝试搜索它,找到了解决方案,例如

from __future__ import print_function
print("i: "+str(i),end="\r")

但它们会导致附加的打印语句。我的print_function 中是否有任何更正或有不同的解决方案?

【问题讨论】:

  • 不确定你想要什么结果。你想在单行中循环打印每条语句吗?
  • 我希望将打印的语句替换为新语句,而不是换行或附加
  • 例如,1 % Completed 必须变为 2 % Completed 而不是 1 % Completed 2 % Completed
  • 你不能把打印语句中的i替换成(i+1)吗?
  • @TomKarzes 我不想要多个打印行或语句,我想要替换输出。

标签: python python-2.7


【解决方案1】:

你想要这样的东西吗:

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

【讨论】:

  • 抱歉,我想替换输出,而不是附加。
  • @CraziestHacker 你运行这个了吗?
  • 是的,就像你发布的那样
  • @CraziestHacker 我没有看到它附加到我的外壳上的先前输出。你错过了字符串末尾的\r 吗?
  • @CraziestHacker:我认为你是在 IDE 中运行代码,而不是 shell 终端?
【解决方案2】:

给你:

from __future__ import print_function

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

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

【讨论】:

  • 对不起,我想替换输出,而不是附加。
  • @CraziestHacker 我的代码确实替换了输出,你在说什么?
  • 所以,你的回答是无关紧要的,因为我的问题清楚地说明了替换输出语句,但没有附加它。
  • @CraziestHacker 输出被替换,而不是附加。你做错了什么。
猜你喜欢
  • 2020-02-03
  • 2023-04-06
  • 1970-01-01
  • 2014-04-29
  • 2017-04-05
  • 2017-03-08
  • 1970-01-01
  • 2021-09-12
  • 2020-10-09
相关资源
最近更新 更多