Python:是否可以替代缺少给定行/列的“打印位置”(Windows10)?

时间:2019-09-15 20:25:25

标签: python-3.x printing

我尝试生成文本行,这些文本行均在同一行的同一位置开始(=覆盖)。因此,print()不应像往常一样以新行开头。其他程序语言具有简单的解决方案:https://rosettacode.org/wiki/Terminal_control/Cursor_positioning 无法进行文字行覆盖:

  • 在字符串中使用\ r无效(#1)
  • 首先strip(),然后将\ r放入字符串无效(#2)
  • ANSI-Escape-Sequence print(“ \ 033 [6; 3HHello”)可以完成这项工作,但是在Windows中无法识别:https://rosettacode.org/wiki/Terminal_control/Cursor_positioning#Python
  • 在同一侧显示的解决方法根本不起作用,而且很繁琐,似乎不是python代码的简洁方法。
print("Good Morning!\rGood Evening!")   #1
a = "Good Morning!" #2
a = a.strip()
print (a + "\r")
print("Good Evening")

1 个答案:

答案 0 :(得分:0)

就这种操作而言,Windows非常不幸。根据我的经验-唯一的解决方案是curses

安装方式:

pip install windows-curses

>>> import curses
>>> import time
>>> def print_inline(window):
...     x=["Good Morning!\nGood Evening!", "Good Morning!", "Good Morning!".strip(), "Good Evening"]
...     for el in x:
...         window.erase()
...         window.addstr(el)
...         window.refresh()
...         time.sleep(2)
...
>>> curses.wrapper(print_inline)

(我将延迟时间设置为2秒)

Documentation