ipython как выполнить несколько строк истории - PullRequest
24 голосов
/ 30 сентября 2011

В ipython мы можем использовать

_ih[32:39] 

, чтобы показать строки истории между 32 и 39. Как я могу напрямую выполнить эти строки истории?

Ответы [ 7 ]

21 голосов
/ 12 мая 2016

Вы можете выполнить код из предыдущих сессий с помощью %recall.См. %recall документацию здесь .

#Execute all code from previous session.
%recall ~1/

#Execute all code from two sessions previous the current session.
%recall ~2/

#Execute lines 1 to 5 from previous session.
%recall ~1/1-5
17 голосов
/ 30 сентября 2011

Я использую обозначение списка:

exec In[34:36]

также, если вы используете функцию редактирования для редактирования чанка, в списке Out будет ваш код, поэтому:

exec Out[35]

И мой любимый:

edit In[34:38]

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

11 голосов
/ 21 июня 2017

В последних версиях iPython вы используете магическую команду повторного запуска:

%rerun 32:39

Документация по этой команде: http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-rerun

10 голосов
/ 09 мая 2014

попробуй% вспомнить, проверка документ отзыва магии

7 голосов
/ 30 сентября 2011

Используйте оператор exec:

exec(_ih[32:39])

http://docs.python.org/reference/simple_stmts.html#exec

5 голосов
/ 30 сентября 2011

Вы можете создать именованный макрос из строк и выполнить их:

%macro foo 32-38
foo

Это полезно, если вы хотите выполнить один и тот же набор строк более одного раза.Также строки не обязательно должны быть последовательными или по порядку:

%macro bar 38 37 32-36 42
2 голосов
/ 28 октября 2015

Вы можете редактировать строки перед их выполнением следующим образом:

edit 1-5

Очевидно, синтаксис изменился в какой-то момент из списка-нотации, использованной в ответе Дрейнольда.

...