2015-02-18 2 views
-1

Я хочу отобразить длинный список в интерактивном режиме в программе командной строки python. В принципе, подумайте git log, с прокруткой и q, чтобы выйти.Git like Интерактивный просмотр списка в python

Как бы это сделать в python?

+0

Вы должны указать, где данные для чего-то как это происходит, сколько вы хотите показать на экране, если вы позволите идти туда и обратно (поскольку 'git log' действительно позволяет вам это делать), или если бы стоило делать какие-либо от этого вообще и полагаться на «меньше» вместо (для терминала * nix - включая Mac). – Makoto

ответ

-1

Создайте цикл while и запросите ввод из подсказки.

Например:

import msvcrt 

my_lis = range(1,78) 
limit = 25 
my_inp = None 

while my_lis: 
    if my_inp != 'q': 
     print my_lis[:limit] 
     my_lis = my_lis[limit:] 
    else: 
     break 
    print "Press any key to continue or (q) to Quit :" 
    my_inp = msvcrt.getch() 
# Exit 
1

интерактивный вид, что мерзавец имеет называется пейджером. Git просто использует пейджер less или другой, если вы его настроите.

В основном вам нужно запустить less в подпроцессе и передать свой вывод на него.

Есть более подробную информацию о том, как сделать это в этом вопросе: Paging output from python

Там также питон вспомогательная библиотека: https://pypi.python.org/pypi/pager (я не использовал его)