Ipython: распечатать полную историю (не только текущую сессию)

в ipython, я могу использовать %hist или %history для печати недавней истории, но это только печатает историю из текущего сеанса.

Я бы хотел напечатать всю историю, как это делает команда bash history.

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

Говоря об истории, можно ли также печатать временные коды?

БОЛЬШОЕ ПРИМЕЧАНИЕ: В bash я написал простой script, который печатает историю, и я могу grep ее для ключевых слов. Я вижу времена, когда выполнялись определенные команды. Я могу указать -A n или -B n, где n - это количество строк AFTER или BEFORE данной команды. Это очень удобно, потому что я могу легко найти то, что я сделал, когда и что произошло...

Я ищу что-то похожее для ipython

Ответ 1

В ipython введите:

%history -g

Он не печатает временные коды, но он печатает номер сеанса/строки.

Ответ 2

Сначала используйте %hist -o -g -f ipython_history.md чтобы вывести историю (ввод и вывод) в текстовый файл. (http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history)

Затем вы можете использовать функцию get_session_info для получения даты и времени интересующего вас сеанса. (Http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.history.html?highlight = hist # IPython.core.history.HistoryAccessor.get_session_info)

profile_hist=IPython.core.history.HistoryAccessor(profile='default')
profile_hist.get_session_info(100)

Это распечатает что-то вроде

(100, datetime.datetime(2018, 2, 13, 19, 8, 30, 40691), None, None, '')

Это означает, что сессия 100 началась 13 февраля 2018 года в 19:08:30.

Ответ 3

Вот расширение Firefox, найденное @kait: SQLite Manager

Он имеет графический интерфейс для открытия файла базы данных и выдачи различных команд sqlite из меню. Вы получаете дополнительный бонус от просмотра команд SQL, которые генерируют вывод. Вот мой пример для %history ipython %history в ~/.ipython/profile_default/history.sqlite:

enter image description here

И даже есть меню для создания графиков (разброс, линия, полоса и т.д.) Из ваших данных!