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

时间:2014-08-04 17:12:12

标签: ipython

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

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

我要做的是获取完整的历史记录,以便我可以使用正则表达式进行搜索,查看指定命令后遵循的命令,等等

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

SIDE NOTE : 在bash中,我编写了一个简单的脚本来打印历史记录,我可以用它来搜索关键字。我看到执行某些命令的时间。我可以指定-A n-B n,其中n是给定命令的行数AFTERBEFORE。 这非常方便,因为我可以很容易地找到我在做什么以及接下来做什么......

我正在为ipython

寻找类似的东西

3 个答案:

答案 0 :(得分:128)

ipython输入:

%history -g

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

答案 1 :(得分:16)

首先使用%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于2018年2月13日19:08:30开始。

答案 2 :(得分:0)

以下是@larssend发现的Firefox扩展:SQLite Manager

它具有一个GUI,用于打开数据库文件并从菜单中发出各种sqlite命令。您将获得更多看到生成输出的SQL命令的好处。这是我在%history中的ipython ~/.ipython/profile_default/history.sqlite的矿藏:

enter image description here

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