Я хочу отобразить длинный список в интерактивном режиме в программе командной строки python. В принципе, подумайте git log
, с прокруткой и q, чтобы выйти.Git like Интерактивный просмотр списка в python
Как бы это сделать в python?
Я хочу отобразить длинный список в интерактивном режиме в программе командной строки python. В принципе, подумайте git log
, с прокруткой и q, чтобы выйти.Git like Интерактивный просмотр списка в python
Как бы это сделать в python?
Создайте цикл 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
интерактивный вид, что мерзавец имеет называется пейджером. Git просто использует пейджер less
или другой, если вы его настроите.
В основном вам нужно запустить less
в подпроцессе и передать свой вывод на него.
Есть более подробную информацию о том, как сделать это в этом вопросе: Paging output from python
Там также питон вспомогательная библиотека: https://pypi.python.org/pypi/pager (я не использовал его)
Вы должны указать, где данные для чего-то как это происходит, сколько вы хотите показать на экране, если вы позволите идти туда и обратно (поскольку 'git log' действительно позволяет вам это делать), или если бы стоило делать какие-либо от этого вообще и полагаться на «меньше» вместо (для терминала * nix - включая Mac). – Makoto