在ipython
中,我可以使用%hist
或%history
打印最近的历史记录,但这只会打印当前会话的历史记录。
我想打印所有历史记录,类似于bash history
命令。
我要做的是获取完整的历史记录,以便我可以使用正则表达式进行搜索,查看指定命令后遵循的命令,等等
说到历史,它还可以打印时间码吗?
SIDE NOTE :
在bash中,我编写了一个简单的脚本来打印历史记录,我可以用它来搜索关键字。我看到执行某些命令的时间。我可以指定-A n
或-B n
,其中n
是给定命令的行数AFTER
或BEFORE
。
这非常方便,因为我可以很容易地找到我在做什么以及接下来做什么......
我正在为ipython
答案 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
的矿藏:
它甚至还具有一个菜单,可根据您的数据生成曲线图(散点图,线图,条形图等)!