Справочная информация о работа в IPython


Вызов справки

%quickref - Небольшой справочник.

%lsmagic - Информация о дополнительных функциях ipython.

%magic - Просмотр справки о дополнительных функциях ipython.

? - Вывод справки.

?? - Полная информация (включая просмотр функцый).

Пару примеров:

In [1]: import os

In [2]: os.path.basename?
Type:       function
String Form:<function basename at 0x7f9e2b39d410>
File:       /usr/lib/python2.7/posixpath.py
Definition: os.path.basename(p)
Docstring:  Returns the final component of a pathname

In [3]: os.path.basename??
Type:       function
String Form:<function basename at 0x7f9e2b39d410>
File:       /usr/lib/python2.7/posixpath.py
Definition: os.path.basename(p)
Source:
def basename(p):
    """Returns the final component of a pathname"""
    i = p.rfind('/') + 1
    return p[i:]

Ввод команд используя редактор

%edit - Спользуется для ввода текста в редакторе, например набора большьной функции.

Командная оболочка Unix

alias - Создание алиасов для команд.

In [15]: %alias du du -sh

In [16]: du /media/
8,0K    /media/

! - выполнение команд в оболочке Unix, знак ! ставится перед командою

In [21]: !touch /tmp/temp

когда не используя знак ! получаем ошибку

In [22]: touch /tmp/temp
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-21-a11b25467e99> in <module>()
----> 1 touch /tmp/temp

NameError: name 'touch' is not defined

Можно также передавать переменные командам

In [23]: port = 80

In [24]: !netstat -ntlp | grep $port
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)

Результам можно сохранить в перемунную

n [25]: rr = !netstat -ntlp | grep $port

In [26]: rr
Out[26]: 
['(Not all processes could be identified, non-owned process info',
 ' will not be shown, you would have to be root to see it all.)',
 'tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      12296/python    ']

Переход в другой каталог

cd - Переход в другой каталог.

In [29]: pwd
Out[29]: u'/'

In [30]: cd /home
/home

In [31]: pwd
Out[31]: u'/home'

Есть возможность перехода по закладкам cd -b Tab

In [15]: pwd
Out[15]: u'/'

In [16]: cd -b tmp
(bookmark:tmp) -> /tmp
/tmp

In [17]: pwd
Out[17]: u'/tmp'

cd -Tab -Перейти в уже посещаемый каталог

Работа с закладками

%bookmark - Работа с закладками.

%bookmakr tmp -Создать закладку в текущем каталоге

In [8]: cd /tmp/
/tmp

In [9]: %bookmark tmp

In [10]: %bookmark -l
Current bookmarks:
tmp -> /tmp

%bookmark tmp /tmp - Создать закладку с указанием пути

In [11]: %bookmark tmp2 /tmp

In [12]: %bookmark -l
Current bookmarks:
tmp  -> /tmp
tmp2 -> /tmp

bookmark -l - список закладок

%bookmakr -d tmp - уделение закладки

%bookmark -r - удаление всех закладок

%dhist - Список посещаемых каталогов

pwd - текущий каталог

Дополнительная обработка данных полученых с Unix оболочки

Использование grep

Для примера

In [24]: ns = !netstat -ntlp

In [25]: ns.grep('80')
Out[25]: ['tcp        0      0 127.0.0.1:8080          0.0.0.0:*               LISTEN      12296/python    ']

Показать все кроме заданного prune=True

In [26]: ns.grep('80', prune=True)
Out[26]: 
['(Not all processes could be identified, non-owned process info',
 ' will not be shown, you would have to be root to see it all.)',
 'Active Internet connections (only servers)',
 'Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name',
 'tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      -               ',
 'tcp        0      0 127.0.0.1:8307          0.0.0.0:*               LISTEN      -               ',
 'tcp        0      0 127.0.1.1:53            0.0.0.0:*               LISTEN      -               ',
 'tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -               ',
 'tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      -               ',
 'tcp        0      0 127.0.0.1:9312          0.0.0.0:*               LISTEN      -               ',
 'tcp        0      0 0.0.0.0:902             0.0.0.0:*               LISTEN      -               ',
 'tcp6       0      0 ::1:631                 :::*                    LISTEN      -               ',
 'tcp6       0      0 :::443                  :::*                    LISTEN      -               ']

####Использование fields

Можно показать отдельные стобцы используя fields()

In [31]: ns.fields(0, 3)
Out[31]: 
['(Not could',
 'will shown,',
 'Active (only',
 'Proto Local',
 'tcp 127.0.0.1:3306',
 'tcp 127.0.0.1:8080',
 'tcp 127.0.0.1:8307',
 'tcp 127.0.1.1:53',
 'tcp 127.0.0.1:631',
 'tcp 0.0.0.0:443',
 'tcp 127.0.0.1:9312',
 'tcp 0.0.0.0:902',
 'tcp6 ::1:631',
 'tcp6 :::443']

Если использовать атрибут s возвращается строка

In [44]: ns.grep('8080').fields(6).s
Out[44]: '12296/python'

Работа с информацыей

%page - Для вывода на экран типа less

%pdef - Выводит заголовки функцый

In [6]: %pdef os.path.join
 os.path.join(a, *p)

%pdoc - выводит строку документирования

In [7]: %pdoc os.path.join
Class Docstring:
    Join two or more pathname components, inserting '/' as needed.
    If any component is an absolute path, all previous path components
    will be discarded.  An empty last part will result in a path that
    ends with a separator.
Calling Docstring:
    x.__call__(...) <==> x(...)

%pinfo - информация о обьекте

In [8]: %pinfo os.path.join
Type:       function
String Form:<function join at 0x7faa74938ed8>
File:       /usr/lib/python2.7/posixpath.py
Definition: os.path.join(a, *p)
Docstring:
Join two or more pathname components, inserting '/' as needed.
If any component is an absolute path, all previous path components
will be discarded.  An empty last part will result in a path that
ends with a separator.

аналогично будет если использовать ? os.path.join

%psource - выводит програмный код

In [14]: %psource os.path.basename
def basename(p):
    """Returns the final component of a pathname"""
    i = p.rfind('/') + 1
    return p[i:]

%who - выводит перечень обьектов

%who_ls - список обьектов

%whos - выводит перечень обьектов в виде таблицы


История команд

CTRL -r - комбинации клавиш для поиска

%history - выодит список вводимых команд

Параметры:

In [4]: %hist -g import 
22/1: import django
23/1: import django
24/1: import django
32/1: import django
32/2: import sys

История результатов

_ - последний результат который выводился в консоль

In [8]: 2 + 2
Out[8]: 4

In [9]: _
Out[9]: 4

_[0-9] - можно указать номер резутьтата который нужно получить

In [21]: _
Out[21]: 5

In [22]: _8
Out[22]: 4

Другие операции

%reset - удаляет все переменные

%run - выполняет файл в оболочке ipython

файл test.py содержит print "Hello"

In [1]: run test
Hello

%save - сохраняет строки в файл

%save filename string
In [10]: %save test.py 'my in'