python:使用回车和逗号不能正常工作

时间:2012-06-13 15:24:04

标签: python newline carriage-return

我需要在循环中打印一行(Python 3.x)。我已经在SO上查看了这一行:

print('{0} imported\r'.format(tot),)

但是,循环播放时仍会打印多行。我也试过

sys.stdout.write('{0} imported\r'.format(tot))

但这不会将任何打印到控制台......

有人知道这是怎么回事吗?

3 个答案:

答案 0 :(得分:25)

在第一种情况下,某些系统会将\r视为换行符。在第二种情况下,您没有flush该行。试试这个:

sys.stdout.write('{0} imported\r'.format(tot))
sys.stdout.flush()

正如Levon提醒我的那样,所有系统上都没有必要冲洗线 - 但是以这种方式使用\r通常是个好主意。

答案 1 :(得分:16)

如果要覆盖最后一行,则需要添加\ r \ n(字符返回)和结束=“”,这样就不会转到下一行。

values = range(0, 100)
for i in values:
    print ("\rComplete: ", i, "%", end="")
print ("\rComplete: 100%")

答案 2 :(得分:6)

我更喜欢使用Jan的解决方案,但是这样:

values = range(0, 101)
for i in values:
  print ("Complete: ", i, "%", end="\r")
print ()