如何获取当前 IPython 会话号以在 %history 中使用

4
在ipython中,%history魔术命令会显示当前会话的历史记录。 %history接受可选的range参数,用于指定要提取历史记录的会话和/或行。 我想知道如何使用range,将其指定为<session_number>/<lines>,例如,%history 243/1-5将显示第243个会话的第1-5行历史记录。
  1. 如何查找与给定搜索字符串匹配的过去会话的会话编号(而不仅仅是通过%history逐个运行所有会话)?
  2. 如何找到当前正在运行的ipython会话的会话编号?
1个回答

4

我不知道如何获取之前所有的会话编号而不必遍历所有历史记录。但是你可以获取当前和上一个会话编号:

>>> ip=get_ipython()
>>> hm =ip.history_manager
>>> hm.get_session_info()
Out: (281, datetime.datetime(2020, 3, 21, 9, 13, 51, 939379), None, None, '')
>>> hm.get_last_session_id()
Out: 281


这个答案非常有帮助。有一个观察结果:似乎两个命令hm.get_session_info()和hm.get_last_session_id()返回相同的(当前)会话ID。无论如何,这些命令都为我提供了所需的答案,因为我可以进行减法运算以获取上一个会话ID。 - Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接