一尘不染

如何保存Python交互式会话?

python

我发现自己经常使用Python的解释器来处理数据库,文件等-基本上是半结构化数据的大量手动格式化。我没有适当地频繁地保存和清理有用的位。有没有一种方法可以将我的输入保存到外壳程序(数据库连接,变量分配,很少用于循环和逻辑位)–交互式会话的一些历史记录?如果我使用类似的东西,script则会收到过多的标准输出噪音。我真的不需要腌制所有对象-尽管如果有解决方案,那就可以了。理想情况下,我只剩下一个脚本,该脚本可以像我交互式创建的那样运行,并且我可以删除不需要的部分。是否有这样做的包装或DIY方法?

更新:我对这些软件包的质量和实用性感到非常惊讶。对于那些类似的痒:

  • IPython-我应该已经使用了很长时间了
  • 重新互动 -非常令人印象深刻,我想了解有关可视化的更多信息,这似乎会在这里大放异彩。排序图的gtk / gnome桌面应用程序。想象一下混合壳+图形计算器+迷你月食。此处的源代码分发:http : //www.reinteract.org/trac/wiki/GettingIt。可以在Ubuntu上很好地构建,也可以集成到gnome桌面,Windows和Mac安装程序中。
  • bpython-非常酷,有很多不错的功能,自动完成(!),倒带,一键保存到文件,缩进,做得很好。Python源代码分发,从sourceforge中提取了两个依赖项。

我被转换了,这些真的满足了解释器和编辑器之间的需求。


阅读 980

收藏
2020-02-23

共1个答案

一尘不染

如果你喜欢使用交互式会话,则IPython非常有用。例如,对于你的用例,有一个%savemagic命令,你只需输入%save my_useful_session 10-20 23即可将输入行10到20和23保存到my_useful_session.py(为了帮助这一点,每行均以其编号作为前缀)。

此外,文档指出:

此函数对输入范围使用与%history相同的语法,然后将这些行保存到你指定的文件名中。

例如,这允许引用较旧的会话,例如

%save current_session ~0/
%save previous_session ~1/
2020-02-23