Справочная информация о работа в 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 - выодит список вводимых команд
Параметры:
-
-n - не выводить номера строк
-
-t - выводит преобразованное представление истории
-
-r - выводит историю команд в сыром виде
- -g - поиск по шаблону
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
-
-n - как name используется название модуля
-
-i - выполняется в текущем пространстве имен IPython
-
-e - игнорируеися sys.exit() и SystemExit (не завершают роботу оболочки)
-
-t - показывать время выполнения модуля
-
-d - файл будет запущен под упавлением pdb
-
-p - файл будет запущен под упавлением планировщика
файл test.py содержит print "Hello"
In [1]: run test
Hello
%save - сохраняет строки в файл
%save filename string
In [10]: %save test.py 'my in'