【问题标题】:How to print in same line but to eliminating characters from previous printing in jupyter lab?如何在同一行打印,但要消除 jupyter lab 中以前打印的字符?
【发布时间】:2021-10-24 16:08:51
【问题描述】:

我正在尝试在 Jupyter Lab 中打印同一行,但会清除之前的输出。我知道'\r' 转义字符,我可以做print('\r'+ my_string,end='') 并且它有效。我想知道如何才能完全擦除之前的输出,因为当my_string 的字符较少时,上一行输出的字符仍保留在行尾。

例如:

my_string = '\r{}%'
for i in range(10000,-1,-1):
    print(s.format(i/100),end='')

这个的最终输出将是 0.0%%%,而不是 0.0%

我试过this SO post,但它对我不起作用:(

编辑:我想要完成的是这样的:

my_string = '\rLap {} || {}%'
for lap in range(3):
    for i in range(10000,-1,-1):
        print(my_string.format(lap,i/100),end='')
    print()

实际输出:

Lap 0 || 0.0%%%
Lap 1 || 0.0%%%
Lap 2 || 0.0%%%

期望的输出:

Lap 0 || 0.0%
Lap 1 || 0.0%
Lap 2 || 0.0%

【问题讨论】:

    标签: python printing formatting jupyter-lab


    【解决方案1】:

    您可以使用IPython 清除/覆盖输出:

    pip install IPython
    
    from IPython.display import clear_output
    clear_output(wait=True)
    

    也可以尝试使用os 模块:

    import os
    print('Hello...')
    os.system('clear') #os.system('cls') for Windows
    print ("cleared!")
    

    或尝试将\r 放在最后的参数中。

    print('', end='\r')
    

    【讨论】:

    • 谢谢@krmogi。这实际上会擦除单元格的完整输出,对吗?是不是一种清除/擦除当前行的方法,或者如何避免以前打印时留下这些字符?
    • 我更新了我的答案,也试试。
    • 感谢您的更新。我尝试了您提出的建议,但无法实现:(。我还编辑了问题并更新了所需的输出,希望更清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 2011-05-28
    • 2013-10-10
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多