I find myself frequently using Python's interpreter to work with databases, files, etc -- basically a lot of manual formatting of semi-structured data. I don't properly save and clean up the useful bits as often as I would like. Is there a way to save my input into the shell (db connections, variable assignments, little for loops and bits of logic) -- some history of the interactive session? If I use something like script I get too much stdout noise. I don't really need to pickle all the objects -- though if there is a solution that does that, it would be OK. Ideally I would just be left with a script that ran as the one I created interactively, and I could just delete the bits I didn't need. Is there a package that does this, or a DIY approach?
当前回答
此外,reinteraction为Python会话提供了一个类似笔记本的界面。
其他回答
如果您喜欢使用交互式会话,IPython是非常有用的。例如,在您的用例中,有一个%save magic命令,您只需输入%save my_useful_session 10-20 23,将第10行到第20行和第23行保存到my_useful_session.py(为了帮助实现这一点,每一行都有它的数字前缀)。
此外,文件指出:
此函数对输入范围使用与%history相同的语法,然后将行保存到指定的文件名。
例如,这允许引用旧的会话,例如
%save current_session ~0/
%save previous_session ~1/
查看演示页面上的视频以快速了解功能。
我再提一个建议: 世爵
它有历史日志和变量资源管理器。如果你用过MatLab,你就会发现其中的相似之处。
如果使用bpython,所有的命令历史都会默认保存到~/.pythonhist。
要保存命令以供以后重用,您可以将它们复制到python脚本文件中:
$ cp ~/.pythonhist mycommands.py
然后编辑该文件以清理它并将其放在Python路径下(全局或虚拟环境的site-packages,当前目录,在*.pth中提到,或其他方式)。
要将命令包含到你的shell中,只需从保存的文件中导入它们:
>>> from mycommands import *
如果你正在使用IPython,你可以使用神奇的%history函数和-f参数p.e将你之前的所有命令保存到一个文件中:
%history -f /tmp/history.py
来自安德鲁·琼斯的网站(存档):
import readline
readline.write_history_file('/home/ahj/history')
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 查看PS命令的全部输出
- 使用try和。Python中的if