python:使用回车和逗号打印不起作用
Posted
技术标签:
【中文标题】python:使用回车和逗号打印不起作用【英文标题】:python: print using carriage return and comma not working 【发布时间】:2012-06-16 14:32:47 【问题描述】:我需要循环打印一行(Python 3.x)。环顾四周,我将这一行放在我的代码中:
print('0 imported\r'.format(tot),)
但是,它在循环时仍会打印多行。我也试过了
sys.stdout.write('0 imported\r'.format(tot))
但这不会将 anything 打印到控制台...
有人知道这是怎么回事吗?
【问题讨论】:
sys.stdout.write()
为我工作.. 你有import sys
。您是否要在同一行上叠加输出?
如果你想从 python 2.x 中获得与print text,
相同的效果,你需要使用end
参数,如print(text, end='')
。函数参数末尾的逗号无效。
不确定“来自 2.x”。 print(text, end='')
行在 =
处给我一个语法错误。
【参考方案1】:
我更喜欢使用 Jan 的解决方案,但是这样:
values = range(0, 101)
for i in values:
print ("Complete: ", i, "%", end="\r")
print ()
【讨论】:
【参考方案2】:如果你想覆盖你的最后一行,你需要添加 \r(字符返回)和 end="",这样你就不会转到下一行。
values = range(0, 100)
for i in values:
print ("\rComplete: ", i, "%", end="")
print ("\rComplete: 100%")
【讨论】:
【参考方案3】:在第一种情况下,某些系统会将\r
视为换行符。在第二种情况下,您没有flush
行。试试这个:
sys.stdout.write('0 imported\r'.format(tot))
sys.stdout.flush()
正如 Levon 提醒我的那样,并非所有系统都需要冲洗线路 - 但以这种方式使用 \r
通常是个好主意。
【讨论】:
@kevlar1818 正如我在评论中提到的,这对我有用(即使没有刷新输出缓冲区)......奇怪sys.stdout.flush()
是我所需要的。谢谢!以上是关于python:使用回车和逗号打印不起作用的主要内容,如果未能解决你的问题,请参考以下文章