python - 就地打印多行字符串

标签 python printing stdout

当字符串更新时,如何在 python 中就地打印多行字符串而不移动到下一行?

我尝试过 pandas、numpy、print,\r 仅适用于打印的字符串的最后一行。有什么想法或解决方法吗?

from sys import stdout
from time import sleep

for i in range(5):
    text = "line one:{}\nline two:{}".format(i,i+2)
    stdout.write("\r"+text)
    sleep(1)

输出应该只有两行并用值更新。
line one:0 > 将此值更新为 1
第二行:2>将此值更新为3

最佳答案

你可以尝试curses替换屏幕任意位置的文本。此示例将在不同行中显示从 ii+5 的连续数字。

import curses, time
scr = curses.initscr()
for i in range(10):
    for k in range(5):
        scr.addstr(k, 0, "%2d" % (i+k))
    scr.refresh()
    time.sleep(0.5)

关于python - 就地打印多行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48458526/

相关文章:

python - "Missing required ' ldap'模块(pip install python-ldap)

python - Pandas :如何在导出到 Excel 后格式化单元格

C 奇怪的异常,写入文件时(写入标准输出时正常工作)

python - 使用带有 sys.stdout 的 Python 'with' 语句

python - Tkinter:在框架类中创建多个框架

javascript - 在 Chrome 打印中隐藏份数输入

javascript - 打印一个尺寸准确的矩形 div

pdf - 调整 PDF 比例以进行打印

java - 如何从Java代码中读取可执行文件stdout stderr?

python - Ruby 中的装饰器(从 Python 迁移)