【问题标题】:how to save codes history in QT Console python?如何在 QT Console python 中保存代码历史记录?
【发布时间】:2017-02-20 08:35:49
【问题描述】:
我刚从 R 切换到 Python,发现 Jupyter Qt 控制台非常方便,对逐行运行代码很有帮助。
但是我有一个问题:如何保存已经输入的代码?我的意思是就像 Rstudio 一样,左上角是代码编辑器,左下角是控制台窗口。这样我就可以全面了解我的代码并逐行调试它们。
我尝试过 Spyder(类似 Rstudio),但它在自动完成方面存在一些问题。 Qt 控制台要好得多。有没有办法将文本编辑器和 qt 控制台组合到一个 IDE 中?
谢谢!
【问题讨论】:
-
你好像不知道jupyter notebook?只需在终端或命令行中键入它。您甚至可以保存笔记本并一次性运行它们。但是,这不是一个 ide。您可能想查看的是带有hydrogen package 的原子编辑器
-
标签:
python
ipython
jupyter
qtconsole
【解决方案1】:
在 jupyter qtconsole 中,您可以使用 %save 魔法来保存您的工作。它比我想要的更麻烦,因为您必须指定要保存的输入单元格,但仍然非常方便。
例如,要将输入单元格 2 到 7 保存到名为 MyCommands.py 的文件中,您只需键入
%save MyCommands.py 2-7
这会将文件保存在您当前的工作目录中。它甚至会警告您并要求您确认文件是否已存在。
有关更多信息,请使用 jupyter 极其有用的内置帮助功能,方法是在您需要帮助的项目后添加问号。
%save?
打印文档字符串
Docstring:将一组行或一个宏保存到给定的文件名。
用法:%save [options] 文件名 n1-n2 n3-n4 ... n5 .. n6 ...
选项:
-r:使用“原始”输入。默认情况下,使用“已处理”历史记录,
以便魔法在其转换后的版本中加载为有效
Python。如果给出此选项,则原始输入类型为
而是使用命令行。
-f:强制覆盖。如果文件存在,%save 将提示覆盖,除非给出 -f。
-a:附加到文件而不是覆盖它。
这个函数对输入范围使用与 %history 相同的语法,然后
将行保存为您指定的文件名。
如果您自己不这样做,它会在文件中添加“.py”扩展名,并且
它在覆盖现有文件之前要求确认。
如果使用-r 选项,则默认扩展名是.ipy。文件:
~/anaconda3/lib/python3.5/site-packages/IPython/core/magics/code.py
请注意,您可以使用问号来调查任何带有文档字符串的函数或对象(即enumerate?、range?)。