Как использовать трубу в IPython - PullRequest
16 голосов
/ 21 апреля 2011

В терминале Linux, когда вывод одной команды слишком длинный для чтения на одной странице, я могу сделать это:

cat file | less

, чтобы я мог читать и прокручивать вверх и вниз вывод из файла cat.

Как я могу сделать это в IPython?

Например, я попробовал это, и это не сработало:

whos | less

Моя первоначальная проблема заключается в том, что вывод из whos слишком велик, чтобы его можно было увидеть, нажав Shift + Page Up, и я не хочу менять буфер прокрутки.

Ответы [ 3 ]

21 голосов
/ 21 апреля 2011

В IPython вы можете использовать %page obj, чтобы показать объект obj, используя ваш стандартный пейджер (обычно less). Кроме того, вы можете увеличить буфер прокрутки вашего терминала, что может быть удобно в любом случае.

%page obj - отображать объект, аналогичный отображению по умолчанию в IPython (как repr), используя пейджер, если для размера вывода требуется

%page -r obj - отображать объект, подобный печати, используя пейджер, если размер требует

%page может принимать только простое имя или ссылку на атрибут. Он не может вычислить произвольное выражение, но вы можете использовать временную переменную, чтобы обойти это ограничениеL

tmp = ex * pr + ess - ion
%page tmp
2 голосов
/ 21 апреля 2011

Использование пейджера должно быть автоматическим.

Из руководства :

Чтобы настроить меньше как пейджер по умолчанию, выполните следующие действия:

  1. Установите для переменной окружения PAGER значение меньше.
  2. Установите для переменной среды LESS значение -r (плюс любые другие параметры, которые вы всегда хотите передать по умолчанию меньше).Это меньше говорит о том, как правильно интерпретировать управляющие последовательности, как информация о цвете передается на ваш терминал.

Для оболочки bash добавьте в файл ~ / .bashrc строки:

export PAGER=less
export LESS=-r
0 голосов
/ 21 апреля 2011

Доступ к системной оболочке

Любая строка ввода, начинающаяся с!символ передается дословно (минус!, конечно) в основную операционную систему.Например, ввод! Ls запустит 'ls' в текущем каталоге.

Источник: http://ipython.scipy.org/doc/rel-0.9.1/html/interactive/reference.html#id1

...