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:使用回车和逗号打印不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用逗号分隔符的表格排序不起作用

Javascript 正则表达式逗号检测不起作用

使用 PhP 执行一些 python 脚本不起作用

使用for循环在数字中插入逗号不起作用

为啥 pandas to_csv 逗号分隔不起作用?

使用 time.time() 更新 Python 全局时间变量不起作用