在 jupyter notebook 中只更新两行打印
Update only two lines in print inside jupyter notebbok
我只想在我的循环中打印两行,我从以下开始:
import time
for i in range(10):
time.sleep(0.5)
for j in range(10):
time.sleep(0.5)
print('Index1:', i)
print('Index2:', j)
我在print
的开头和结尾尝试了\r
、\n
、flush=True
等不同组合,但没有成功((
我想看到的是接受答案的 GIF
我试过那些代码,但没有用,可能是因为我的 OS 是 Windows 或者我使用 jupyter notebook
,我不知道((
在 Jupyter Notebook 中,您可以使用 IPython.display.clear_output(wait=True)
清除当前单元格输出
在终端中,可以使用 ANSI 转义码实现类似的行为,如以下代码片段所示:
import time
n = 15
for i in range(n):
print(f"{i}s passed")
print(f"{n-i}s remaining")
time.sleep(1)
print("\u001b[2A", end="") #ANSI escape code for cursor up 2 lines
对于 Jupyter,从 IPython.display
导入 clear_output
。在终端上,您可以使用 os.system('clear')
表示 Linux 或 os.system('cls')
表示 Windows.
import time
import os
from IPython.display import clear_output
for i in range(10):
for j in range(10):
print(f'Index1: {i}\nIndex2: {j}')
time.sleep(0.5)
# for terminal ('clear' for Linux, 'cls' for Windows)
# os.system('clear')
# for Jupyter
clear_output(wait=True)
记住一定要在print()
里面使用end
试试这个代码:
import time
for i in range(10):
time.sleep(0.5)
for j in range(10):
time.sleep(0.5)
print(f'\rIndex1: {i}, Index2: {j}', flush=True, end='')
我只想在我的循环中打印两行,我从以下开始:
import time
for i in range(10):
time.sleep(0.5)
for j in range(10):
time.sleep(0.5)
print('Index1:', i)
print('Index2:', j)
我在print
的开头和结尾尝试了\r
、\n
、flush=True
等不同组合,但没有成功((
我想看到的是接受答案的 GIF
我试过那些代码,但没有用,可能是因为我的 OS 是 Windows 或者我使用 jupyter notebook
,我不知道((
在 Jupyter Notebook 中,您可以使用 IPython.display.clear_output(wait=True)
在终端中,可以使用 ANSI 转义码实现类似的行为,如以下代码片段所示:
import time
n = 15
for i in range(n):
print(f"{i}s passed")
print(f"{n-i}s remaining")
time.sleep(1)
print("\u001b[2A", end="") #ANSI escape code for cursor up 2 lines
对于 Jupyter,从 IPython.display
导入 clear_output
。在终端上,您可以使用 os.system('clear')
表示 Linux 或 os.system('cls')
表示 Windows.
import time
import os
from IPython.display import clear_output
for i in range(10):
for j in range(10):
print(f'Index1: {i}\nIndex2: {j}')
time.sleep(0.5)
# for terminal ('clear' for Linux, 'cls' for Windows)
# os.system('clear')
# for Jupyter
clear_output(wait=True)
记住一定要在print()
end
试试这个代码:
import time
for i in range(10):
time.sleep(0.5)
for j in range(10):
time.sleep(0.5)
print(f'\rIndex1: {i}, Index2: {j}', flush=True, end='')