Gra*_*Gra 9 python pagination cmd
我正在使用cmd模块对Python应用程序进行原型设计.
给用户的一些消息会很长,我想对它们进行分页.将显示消息的前10行(或可配置的数字)行,按空格键将显示下一页,直到消息结束.
我不想在这里重新发明一些东西,有一个简单的意思来实现这个功能吗?
简单的事情就是在运行时通过“ less”或类似的命令来传递脚本。
不过,这是一种简单的方法,可以满足您的需求:
def print_and_wait(some_long_message):
lines = some_long_message.split('\n')
i=0
while i < len(lines):
print '\n'.join(lines[i:i+10])
raw_input("press enter to read more...")
i += 10
Run Code Online (Sandbox Code Playgroud)
您也可以考虑使用诅咒。
正如 Yoni 上面所说,执行此操作的正确方法是提供一个打印方法,该方法可以在正在运行的 cmd 实例中自动分页。Cmd 的构造函数采用 stdin 和 stdout 参数。如此简单,提供一个像 stdout 一样工作并支持您的分页打印方法的对象。
class PagingStdOut(object):
def write(self, buffer, lines_before_pause=40):
# do magic paging here...
Run Code Online (Sandbox Code Playgroud)