如果您喜欢使用交互式会话, IPython非常有用。 例如你的用例有%save magic命令 ,你只需input%save my_useful_session 10-20 23将input行10到20和23保存到my_useful_session.py (为了解决这个问题,每一行都以其前缀数)。

此外,该文件指出:

此函数使用与%history相同的语法input范围,然后将行保存为您指定的文件名。

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

%save current_session ~0/ %save previous_session ~1/

查看演示页面上的video以快速浏览function。

import readline readline.write_history_file('/home/ahj/history')

有办法做到这一点。 将文件存储在~/.pystartup …

# Add auto-completion and a stored history file of commands to your Python # interactive interpreter. Requires Python 2.0+, readline. Autocomplete is # bound to the Esc key by default (you can change it - see readline docs). # # Store the file in ~/.pystartup, and set an environment variable to point # to it: "export PYTHONSTARTUP=/home/user/.pystartup" in bash. # # Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the # full path to your home directory. import atexit import os import readline import rlcompleter historyPath = os.path.expanduser("~/.pyhistory") def save_history(historyPath=historyPath): import readline readline.write_history_file(historyPath) if os.path.exists(historyPath): readline.read_history_file(historyPath) atexit.register(save_history) del os, atexit, readline, rlcompleter, save_history, historyPath

然后在shell中设置环境variablesPYTHONSTARTUP (例如在~/.bashrc ):

export PYTHONSTARTUP=$HOME/.pystartup

您也可以添加这个来免费自动完成:

readline.parse_and_bind('tab: complete')

请注意,这只适用于* nix系统。 由于readline只能在Unix平台上使用。

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

%history -f /tmp/history.py

安装Ipython后 ,运行以下命令打开Ipython会话:

ipython

从命令行运行下面的Ipython“magic”命令来自动logging整个Ipython会话:

%logstart

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

而且, reinteract为Python会话提供了类似笔记本的界面。

除了IPython之外,类似的实用工具bpython还有一个“保存你input到文件中的代码”的function

我不得不努力find答案,我对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

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

有%的历史魔术打印和保存input历史(和可选的输出)。

要将当前会话存储到名为my_history.py的文件,请my_history.py :

>>> %hist -f my_history.py

历史loggingIPython存储您input的命令及其生成的结果。 您可以使用上下箭头键轻松完成以前的命令,或以更复杂的方式访问您的历史logging。

您可以使用%历史魔术函数来检查过去的input和输出。 以前会话的input历史logging保存在数据库中,IPython可以configuration为保存输出历史logging。

其他几个魔术function可以使用您的input历史logging,包括%编辑,%重新运行,%召回,%macros,%保存和%pastebin。 您可以使用标准格式来引用行:

%pastebin 3 18-20 ~1/1-5

这将从当前会话中取第3行和第18至20行,并从前一会话取第1-5行。

查看%历史logging? 为Docstring和更多的例子。

另外,一定要探索%store magic在IPython中轻量级持久化variables的function。

在IPython的数据库中存储variables,别名和macros。

d = {'a': 1, 'b': 2} %store d # stores the variable del d %store -rd # Refresh the variable from IPython's database. >>> d {'a': 1, 'b': 2}

要在启动时自动存储存储的variables,请在ipython_config.py中指定c.StoreMagic.autorestore = True 。

把另一个build议放在碗里: Spyder

它有历史logging和variables浏览器 。 如果你使用过MatLab,那么你会看到相似之处。

还有另一种select— pyslice。 在“wxpython 2.8文档演示和工具”中,有一个名为“pyslices”的开源程序。

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

当然,所有代码块和每个块的结果都会自动logging到一个txt文件中。

结果被logging在相应的代码块的后面。 很方便。

就Linux而言,可以使用script命令logging整个会话。 它是util-linux软件包的一部分,所以应该在大多数Linux系统上。 你可以创build和别名或function,将调用script -c python ,将被保存到typescript文件。 例如,这里是一个这样的文件的重印。

$ cat typescript Script started on Sat 14 May 2016 08:30:08 AM MDT Python 2.7.6 (default, Jun 22 2015, 17:58:13) [GCC 4.8.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print 'Hello Pythonic World' Hello Pythonic World >>> Script done on Sat 14 May 2016 08:30:42 AM MDT

这里的一个小缺点就是scriptlogging了所有的东西,甚至是换行符,每当你回退空间时,等等。所以你可能想用col来清理输出(参见Unix&Linux Stackexchange上的这篇文章 )。

%history命令非常棒,但是不幸的是,它不会让你把东西粘贴到sesh中。 要做到这一点,我认为你必须在开始时做%logstart (尽pipe我还没有确认这个工作)。

我喜欢做的是

%history -o -n -p -f filename.txt

这将在每个input(o,n和p选项)之前保存输出,行号和'>>>'。 请参阅此处 %历史logging的文档。

一些评论是问如何保存所有的IPythoninput一次。 为了在IPython中保存魔术%,可以按照如下所示以编程方式保存所有命令,以避免提示消息,也避免指定input数字。 currentLine = len(In)-1%save -f my_session 1- $ currentLine

-f选项用于强制文件replace, len(IN)-1显示IPython中的当前input提示符,允许以编程方式保存整个会话。

对于那些使用spacemacs和python-layer自带的spacemacs ,由于在spacemacs工作的常量自动完成命令,保存魔法会产生大量不需要的输出,如:

len(all_suffixes) ';'.join(__PYTHON_EL_get_completions('''len''')) ';'.join(__PYTHON_EL_get_completions('''all_substa''')) len(all_substantives_w_suffixes) ';'.join(__PYTHON_EL_get_completions('''len''')) ';'.join(__PYTHON_EL_get_completions('''all''')) ';'.join(__PYTHON_EL_get_completions('''all_''')) ';'.join(__PYTHON_EL_get_completions('''all_w''')) ';'.join(__PYTHON_EL_get_completions('''all_wo''')) ';'.join(__PYTHON_EL_get_completions('''all_wor''')) ';'.join(__PYTHON_EL_get_completions('''all_word''')) ';'.join(__PYTHON_EL_get_completions('''all_words''')) len(all_words_w_logograms) len(all_verbs)

为了避免这种情况,只保存ipython缓冲区,就像你通常保存其他的: spc fs

如果你使用bpython ,所有的命令历史logging默认保存到~/.pythonhist 。

要保存这些命令以便以后重用,可以将它们复制到一个python脚本文件中:

$ cp ~/.pythonhist mycommands.py

然后编辑该文件将其清理并将其放在Pythonpath下 (全局或虚拟环境的站点包,当前目录,以* .pth或其他方式提及)。

要将命令包含到shell中,只需从保存的文件中导入它们:

>>> from mycommands import *

我想build议在Linux上通过tmux维护python会话的另一种方法。 你运行tmux,把你的自己附加到你打开的会话(如果直接打开后没有连接)。 执行python并做任何你正在做的事情。 然后脱离会话。 从tmux会话分离不会closures会话。 会议保持开放。

这个方法的优点:你可以从任何其他设备附加到这个会话(如果你可以ssh你的电脑)

这个方法的缺点:这个方法不会放弃打开的python会话使用的资源,直到你实际存在python解释器。

python交互式怎么保存_如何保存一个Python交互式会话?相关推荐

  1. python文件运行哪一个_如何使一个python文件运行另一个?

    本问题已经有最佳答案,请猛点这里访问. 如何创建一个python文件来运行另一个? 例如,我有两个.py文件.我想运行一个文件,然后让它运行另一个.py文件. docs.python.org / / ...

  2. python爬虫翻页_教给你一个python爬虫最简单的翻页的办法

    很多同学对python爬虫翻页感到很是头疼,下面我教给大家一个最简单的办法:模糊搜索法.以这个网站 :https://m.51xw.net/meizi/ 为例 打开网站我们先看到的是一个个的图集,点开 ...

  3. python大数据免费_安利大家一个Python大数据分析神器

    对于Pandas运行速度的提升方法,之前已经介绍过很多回了,里面经常提及Dask,很多朋友没接触过可能不太了解,今天就推荐一下这个神器.StB免费资源网 1.什么是Dask?StB免费资源网 Pand ...

  4. python如何编写爬虫_如何实现一个Python爬虫框架

    image 这篇文章的题目有点大,但这并不是说我自觉对Python爬虫这块有多大见解,我只不过是想将自己的一些经验付诸于笔,对于如何写一个爬虫框架,我想一步一步地结合具体代码来讲述如何从零开始编写一个 ...

  5. python判断对象类型_如何查看一个Python对象的类型

    怎么查看一个对象的类型 在Python中有两种类型判断函数,type()和isinstance(). 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判 ...

  6. python持久层框架_想设计一个Python的持久层框架

    框架定义在持久层,除提供ORMapping功能外加点权限控制.ORMapping的代码学习iBatis和ActiveRecord的做法,可使用任意一种,想象中xml应该这样子定义 select c1, ...

  7. python 网页答题器_大话西游答题器 Python版本

    科举,大理寺都适用. 唯独不支持的是殿试. 项目代吗 pip install requests 然后保存下列代码到一个python文件(如: search.py) # -*- coding: utf- ...

  8. python 下载网页文件_『如何用python把网页上的文本内容保存下来』python爬取网页内容教程...

    python爬虫:如何爬网页数据并将其放在文本 用requests库 r=r.requests.get(url) r.concent 保存到文件里就行了 如何用python把网页上的文本内容保存下来 ...

  9. python 运行结果保存_『如何将python运行结果保存成txt,万分感谢呐』python txt教程...

    如何将python运行结果保存成txt,万分感谢呐 把赋值量 content f = open("text.txt",'wb') f.write(content) f.close( ...

  10. python人机交互界面设计_[译]学习IPython进行交互式计算和数据可视化(五)

    第四章:交互式绘图接口 本章我们将展示Python的绘图功能以及如何在IPython中交互式地使用它们. NumPy为处理大量的多维数组结构的数据提供了高效的方法.但是看行行列列的数字总不如直接看曲线 ...

最新文章

  1. pyspark dataframe基本用法
  2. Django从理论到实战(part37)--关于迁移
  3. 使用Swashbuckle构建RESTful风格文档
  4. 手把手教你用Scrapy爬取知乎大V粉丝列表
  5. Python程序设计学习笔记-语句与格式化输出
  6. 23种设计模式(十四)接口隔离之代理模式
  7. rancher的使用感受以及与k8s的对比
  8. 阿里集团公布2022“研究型实习生”计划
  9. Win7安装RNDIS驱动
  10. android抢qq红包源码,QQ抢红包插件实现
  11. STM32F103RCT6实验代码之ADS1115的使用
  12. ABAP编程中对内表的定义,后面接一个OCCURS (n)是代表什么意思。
  13. 生成器进阶--yield from
  14. 4部网页配色电子书库之第4部——网站配色方案赏析
  15. 计算机系统的优点和缺点,关于ghost系统的解释以及优缺点分析
  16. 数据库 和html的交互
  17. Revi开发 - 构件过滤器(FilteredElementCollector)
  18. win7系统下安装win10实现双系统安装教程
  19. 类型转换和强制转换和运算符
  20. 读书笔记 - 小米生态链: 101条战地法则

热门文章

  1. MacOS - 快捷键以及各种操作汇总
  2. Java项目:教务管理系统(java+SpringBoot+Thymeleaf+LayUI+HTML+mysql)
  3. 【数据结构与算法】计算机之父
  4. 弄懂了阴阳转换,穴位或为丹田的宿
  5. IndexedDB 包装库 idb
  6. 消息中间件-Activemq之Master-Slaver
  7. Unity3D ML-agents 入坑指导
  8. 假设检验实验和拟合优度检验练习题
  9. Python使用sox判断音频是否silent
  10. A Generative Adversarial Network-based Deep Learning Method for Low-quality Defect ImageReconstructi