如何保存Python交互式会话?

一个人想着一个人 提交于 2020-02-27 06:25:01

我发现自己经常使用Python的解释器来处理数据库,文件等 - 基本上是大量的半结构化数据的手动格式化。 我没有像我希望的那样经常保存和清理有用的位。 有没有办法将我的输入保存到shell(数据库连接,变量赋值,少量循环和逻辑位) - 交互式会话的一些历史记录? 如果我使用类似script东西,我会得到太多的噪音。 我真的不需要腌制所有对象 - 但如果有一个解决方案可以做到这一点,那就没关系。 理想情况下,我只剩下一个脚本,它以我交互式创建的脚本运行,我可以删除我不需要的位。 有没有这样做的包,或DIY方法?

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

  • IPython - 应该已经使用了很多年了,我想到的是什么
  • 重新进行 - 非常令人印象深刻,我想了解更多有关可视化的知识,这似乎会在那里发光。 一种gtk / gnome桌面应用程序,用于内嵌图形。 想象一下混合壳+图形计算器+迷你蚀。 来源分布在这里: http//www.reinteract.org/trac/wiki/GettingIt 。 在Ubuntu上运行良好,也集成到gnome桌面,Windows和Mac安装程序中。
  • bpython - 非常酷,很多不错的功能,自动完成(!),倒带,一键击保存到文件,缩进,做得好。 Python源代码分发,从sourceforge中提取了几个依赖项。

我被转换了,这些真正填补了翻译和编辑之间的需要。


#1楼

只是把另一个暗示放在碗里: Spyder

它有历史记录日志变量浏览器 。 如果您使用过MatLab,那么您将看到相似之处。


#2楼

还有另一个选择--- pyslice。 在“wxpython 2.8 docs演示和工具”中,有一个名为“pyslices”的开源程序。

你可以像编辑一样使用它,它也支持像控制台一样使用----像交互式解释器一样执行每一行,并立即回显。

当然,每个块的所有代码块和结果都将自动记录到txt文件中。

结果记录在相应的代码块后面。 很方便。


#3楼

我不得不努力寻找答案,我对iPython环境很新。

这会奏效

如果您的iPython会话看起来像这样

In [1] : import numpy as np
....
In [135]: counter=collections.Counter(mapusercluster[3])
In [136]: counter
Out[136]: Counter({2: 700, 0: 351, 1: 233})

您希望保存从1到135的行,然后在同一个ipython会话中使用此命令

In [137]: %save test.py 1-135

这将保存当前目录(启动ipython的地方)中test.py文件中的所有python语句。


#4楼

安装Ipython之后 ,通过运行命令打开Ipython会话:

ipython

从命令行,只需运行以下Ipython'magic'命令即可自动记录整个Ipython会话:

%logstart

这将创建一个唯一命名的.py文件并存储您的会话,以便以后用作交互式Ipython会话或用于您选择的脚本。


#5楼

如果您正在使用IPython,您可以使用带有-f参数pe的魔术函数%history将所有以前的命令保存到文件中:

%history -f /tmp/history.py
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!