在命令行程序中创建“可滚动”输出
我有一个程序,它会输出大约300到1000行的数据。我不想让它一次性输出所有内容,而是希望能有一个类似手册页的界面,先显示大约50行,然后用户可以按'f'或'b'键来翻页查看。请问在Python中有没有办法做到这一点?
注意:我想把这个程序分享出去,不想让用户必须把输出内容通过管道传给less或more。此外,输出是在程序中间进行的,并不是程序唯一的输出,所以我不太确定这样做是否可行。
2 个回答
2
注意:我绝对不会这样做,我觉得这会让用户体验很糟糕,但是……
pager = subprocess.Popen(['less'], stdin=subprocess.PIPE)
然后把你所有命令的输出写入这个像文件一样的对象:pager.stdin
2
你可以做一些非常基础的事情,比如:
# pseudocode
def display_text(text):
lines = text.splitlines()
while lines remaining:
display next N lines
wait for key press
要“等待按键”,你可以这样做:http://www.daniweb.com/software-development/python/threads/123777/press-any-key-to-continue