我需要在循环中打印一行(Python 3.x)。环顾四周,我将这一行放在我的代码中:
print('{0} imported\r'.format(tot),)
但是,它在循环时仍会打印多行。我也试过
sys.stdout.write('{0} imported\r'.format(tot))
但这不会在控制台上打印任何内容...
有谁知道这是怎么回事?
我需要在循环中打印一行(Python 3.x)。环顾四周,我将这一行放在我的代码中:
print('{0} imported\r'.format(tot),)
但是,它在循环时仍会打印多行。我也试过
sys.stdout.write('{0} imported\r'.format(tot))
但这不会在控制台上打印任何内容...
有谁知道这是怎么回事?
如果你想覆盖你的最后一行,你需要添加 \r (字符返回)和 end="" 这样你就不会转到下一行。
values = range(0, 100)
for i in values:
print ("\rComplete: ", i, "%", end="")
print ("\rComplete: 100%")
在第一种情况下,某些系统会将\r
其视为换行符。在第二种情况下,您没有flush
排队。试试这个:
sys.stdout.write('{0} imported\r'.format(tot))
sys.stdout.flush()
正如 Levon 提醒我的那样,并非所有系统都需要冲洗线路——但使用\r
这种方式通常是个好主意。
我更喜欢使用 Jan 的解决方案,但是这样:
values = range(0, 101)
for i in values:
print ("Complete: ", i, "%", end="\r")
print ()