【问题标题】:Python3 Print is not overwriting current line in some terminalsPython3 Print 不会覆盖某些终端中的当前行
【发布时间】:2020-09-05 18:14:28
【问题描述】:

我编写了一个小工具,可以遍历一个单词表,我希望它打印单词表中的每一行到上一行,我尝试了以下方法,但它有问题。

print(word + (100 * " "), end="\r", flush=True)

这在 VSCodes 内置终端中按预期工作,但是当我在操作系统 (Xfce) 内置终端或 Terminator 中运行相同的工具时,每个“单词”都打印在换行符上

有谁知道为什么会发生这种情况,我所有的研究都只是告诉我如何去做,这无济于事,因为做这件事的方法就是这个问题。

谢谢

【问题讨论】:

标签: python python-3.x terminal output


【解决方案1】:

这是因为根据您的窗口宽度(和字长),每个字符串可能比行长。所以下一个打印语句“覆盖”前一个字符串,但由于前一个字符串跳了一行,所以新字符串从新行开始。

您可以通过打印 99 个空格后跟 * 或其他字符来查看此操作:

print(word + (99 * " ") + "*")

根据您的窗口宽度和字长,这可能会或可能不会跳行,如“*”打印的位置所示。

【讨论】:

  • 谢谢,这很有意义将测试但有一个偷偷怀疑你是正确的!
  • 谢谢,我添加了很多填充来覆盖比新行更长的任何内容,现在计算它:)
猜你喜欢
  • 2015-01-22
  • 2015-10-16
  • 2015-04-07
  • 2020-08-29
  • 1970-01-01
  • 2019-09-03
  • 1970-01-01
  • 2013-12-07
  • 2012-04-15
相关资源
最近更新 更多