Ipython: 打印完整的历史记录(不仅仅是当前会话)

ipython中,我可以使用 %hist%history打印最近的历史记录,但这只打印当前会话的历史记录。

我想打印所有历史记录,类似于 bash history命令。

我要做的是获取完整的历史记录,这样我就可以使用正则表达式进行搜索,查看在指定命令之后执行了哪些命令,等等

说到历史,它还能打印时间码吗?

旁注 : 在 bash 中,我编写了一个打印历史的简单脚本,我可以用它来获取关键字。我看到某些命令被执行的次数。我可以指定 -A n-B n,其中 n是若干行 AFTERBEFORE,是给定的命令。 这是非常方便的,因为我可以很容易地找到我做了什么,什么时候,以及随后,..。

我正在为 ipython寻找类似的东西

67583 次浏览

ipython中输入:

%history -g

它不打印时间代码,但它打印会话/行号。

首先使用 %hist -o -g -f ipython_history.md将历史记录(输入和输出)输出到一个文本文件

然后您可以使用 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届会议于2018年2月13日19:08:30开始。

下面是 @ larssend找到的 Firefox 扩展: SQLite 管理器

它有一个用于打开数据库文件和从菜单发出各种 sqlite 命令的 GUI。您还可以看到生成输出的 SQL 命令。下面是我为 ~/.ipython/profile_default/history.sqlite中的 ipython %history设计的:

enter image description here

它甚至还有一个菜单,可以根据你的数据生成图形(散点、线、条等) !