Python 对于打印和运行大量数据的代码,如何打印运行程序顶部的标题,使其连续可见?

Python 对于打印和运行大量数据的代码,如何打印运行程序顶部的标题,使其连续可见?,python,python-3.x,Python,Python 3.x,示例:(在运行的程序上保持可见,如果需要滚动到顶部,可以随时查看) print(“这是我的标题”) 打印(“这是我的副标题”) 计数=0 当计数小于5000时: 打印(“你好”) 计数=计数+1#或计数+1 我的代码只要我设置它就可以运行,这不是问题所在。但是当程序运行时,它从不显示顶部打印的标题,或者如果我要停止程序一段时间并实际滚动到顶部,那么打印的标题和其他各种文本将不可见 我该如何解决这个问题,即使我想打印一百万个项目,我仍然可以在顶部看到打印的标题和打印的信息?首先是一种有用的非py

示例:(在运行的程序上保持可见,如果需要滚动到顶部,可以随时查看)

print(“这是我的标题”)
打印(“这是我的副标题”)
计数=0
当计数小于5000时:
打印(“你好”)
计数=计数+1#或计数+1
我的代码只要我设置它就可以运行,这不是问题所在。但是当程序运行时,它从不显示顶部打印的标题,或者如果我要停止程序一段时间并实际滚动到顶部,那么打印的标题和其他各种文本将不可见

我该如何解决这个问题,即使我想打印一百万个项目,我仍然可以在顶部看到打印的标题和打印的信息?

首先是一种有用的非python方式: 如果从终端运行脚本(比如my_long_print_script.py),则可以使用
less
(在linux和osx中是肯定的):

然后使用
enter
向下滚动,然后使用
q
退出

用python编写标准输出 在python中,您可以直接写入标准输出并“覆盖”以前的输出。这可能会导致某种进度条行为,我不确定这是否是您想要的,下面是一个示例:

# content of my_long_print_script.py:
import sys
from time import sleep
sys.stdout.write('This title should stay\n')
sys.stdout.write('this subtitle too\n')
for count in xrange(100):
    sleep(0.1)
    sys.stdout.write('{0}\r'.format(count))
    sys.stdout.flush()
当您将其作为脚本运行时(因此在终端中键入
python my\u very\u long\u print\u script.py
),两个标题行将保持不变,并且在一行下面将不断更新

仅供参考:我添加了
睡眠
,因为否则计数变化太快


希望这是有用的。

您可能会想使用python的。这就是创建可以就地重画的“窗口”的方法

我编写了2048的CLI版本,每次移动后输出游戏板时都会滚动终端。使用诅咒,我现在可以覆盖上一块板而不需要任何滚动

基本上,您需要初始化一个新的curses窗口对象,将输出字符串设置为“我的标题在这里”,并在程序每次迭代时在(0,0)处发出window.redraw()命令

python my_long_print_script.py | less
# content of my_long_print_script.py:
import sys
from time import sleep
sys.stdout.write('This title should stay\n')
sys.stdout.write('this subtitle too\n')
for count in xrange(100):
    sleep(0.1)
    sys.stdout.write('{0}\r'.format(count))
    sys.stdout.flush()