在ipython历史中搜索

2024-06-06 21:16:19 发布

您现在位置:Python中文网/ 问答频道 /正文

ipython%his命令输出用户最近输入的命令。可以在这些命令中搜索吗?像这样的:

[c for c in %history if c.startswith('plot')]

编辑我不是在寻找重新运行命令的方法,而是在历史记录列表中查找该命令。当然,有时我想在找到命令后重新运行它,可以是逐字的,也可以是经过修改的。

编辑使用ctr-r搜索,然后键入plot给出以“plot”开头的最新命令。它不会列出所有以它开头的命令。也不能在命令的中间或结尾搜索

解决方案

在这里展开前奏曲和赋格的解决方案我在寻找:

[l for l in  _ih if l.startswith('plot')]

这里,if条件可以由regex替换


Tags: 方法用户in命令编辑列表for历史记录
3条回答

与第一个答案类似,您可以执行以下操作:

''.join(_ih).split('\n')

但是,在遍历命令历史记录项时,可以执行以下操作。因此,你可以从中创建你的列表理解。

for item in _ih:
    print item

文件的以下部分记录了这一点: http://ipython.org/ipython-doc/dev/interactive/reference.html#input-caching-system

更妙的是:%hist -g patternpattern改写你过去的历史。您还可以将搜索限制为当前会话或特定范围的行。见%hist?

所以对于@BorisGorelik的问题你必须做

%hist -g plot

不幸的是你做不到

%hist -g ^plot

也不是

%hist -g "^plot"

如果要在历史记录中重新运行命令,请尝试Ctrl-r,然后尝试搜索字符串。

相关问题 更多 >