Matt Elson Matt Elson - 10 months ago 58
Python Question

Paging output from print statement

I'm essentially trying to achieve this:

>>>print "SOME_VERY_LONG_TEXT" | more

Of course, it doesn't work in Python 2.7(IDLE).

Also, I tried pager 1.2's
function, but I don't know how to get it to work correctly.

Any ideas?


I found a lazy way, as follows:

import pydoc

Answer Source

Writing something terminal and os independent might be a bigger task.

But if you can get the height of the terminal then you can use something like this this Assuming your input is a generator/list of line seperated text, or else you can call text.split('\n') before calling this function

def pagetext(text_lined, num_lines=25):
   for index,line in enumerate(text_lined):
       if index % num_lines == 0 and index:
           input=raw_input("Hit any key to continue press q to quit")
           if input.lower() == 'q':
           print line

Also there is a pager module on pypy haven't used it but the author says it was supposed to be included in the standard library.