Python 创造;“可滚动”;命令行程序中的输出
我有一个程序,可以输出300-1000行数据。我希望它能有一个类似于手册页的界面,显示前50行左右的输入,然后用户可以按“f”或“b”在页面中导航,而不是一次输出所有内容。在Python中有没有实现这一点的方法Python 创造;“可滚动”;命令行程序中的输出,python,Python,我有一个程序,可以输出300-1000行数据。我希望它能有一个类似于手册页的界面,显示前50行左右的输入,然后用户可以按“f”或“b”在页面中导航,而不是一次输出所有内容。在Python中有没有实现这一点的方法 注意:我想分发程序,我不想强迫用户将输出传输到更少/更多。此外,输出发生在程序的中间,并不是程序的唯一输出,所以我不确定这是否会起作用。 注意:我永远不会这样做,我认为这是非常糟糕的UIX,但是 pager = subprocess.Popen(['less'], stdin=subpr
注意:我想分发程序,我不想强迫用户将输出传输到更少/更多。此外,输出发生在程序的中间,并不是程序的唯一输出,所以我不确定这是否会起作用。 注意:我永远不会这样做,我认为这是非常糟糕的UIX,但是
pager = subprocess.Popen(['less'], stdin=subprocess.PIPE)
然后将所有命令的输出写入文件,如对象:
pager.stdin
您可以做一些非常基本的事情,如:
# pseudocode
def display_text(text):
lines = text.splitlines()
while lines remaining:
display next N lines
wait for key press
要“等待按键”,您可以这样做:您可以始终通过管道将其传递到
less
或more
为什么不在bash中使用一个简单的less
命令?从您的问题来看,似乎您正在使用命令行是的,但我希望分发该程序并使其尽可能友好。当然,任何一个首先使用命令行程序的人都可能知道less
或more
,但是为您格式化输出仍然很好。此外,输出不一定是程序的结束。文本输出后,用户将有更多选项。编辑原文以反映搜索“python控制台ui库”的过程,这也给了我一些可能解决您没有提到的问题的方法。。