如何为Python终端提供持久性历史记录


Posted in Python onSeptember 03, 2019

问题

有没有办法告诉交互式Python shell在会话之间保留其执行命令的历史记录?

当会话正在运行时,在执行命令之后,我可以向上箭头并访问所述命令,我只是想知道是否有某种方法可以保存这些命令,直到下次我使用Python shell时。

这非常有用,因为我发现自己在会话中重用命令,这是我在上一个会话结束时使用的。

解决方案

当然你可以用一个小的启动脚本。来自python教程中的交互式输入编辑和历史替换:

# 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=~/.pystartup" in bash.

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

从Python 3.4开始,交互式解释器支持开箱即用的自动完成和历史记录:

现在,在支持的系统上的交互式解释器中默认启用Tab-completion readline。默认情况下也会启用历史记录,并将其写入(并从中读取)文件~/.python-history。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的os.path路径模块中的操作方法总结
Jul 07 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
详解python中的模块及包导入
Aug 30 Python
python实现代码统计程序
Sep 19 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
python数据类型强制转换实例详解
Jun 22 Python
简单的命令查看安装的python版本号
Aug 28 Python
Python实现扫码工具的示例代码
Oct 09 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 #Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 #Python
python实现静态web服务器
Sep 03 #Python
Python的Lambda函数用法详解
Sep 03 #Python
Python获取一个用户名的组ID过程解析
Sep 03 #Python
python多线程实现TCP服务端
Sep 03 #Python
Python实现多线程/多进程的TCP服务器
Sep 03 #Python
You might like
php的正则处理函数总结分析
2008/06/20 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
layer实现关闭弹出层刷新父界面功能详解
2017/11/15 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
Python文件处理
2016/02/29 Python
python的mysqldb安装步骤详解
2017/08/14 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Sanic框架流式传输操作示例
2018/07/18 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
Python的垃圾回收机制详解
2019/08/28 Python
python列表推导式操作解析
2019/11/26 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
职称自我鉴定
2013/10/15 职场文书
英语硕士生求职简历的自我评价
2013/10/15 职场文书
采购经理岗位职责
2014/02/16 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
党员思想汇报材料
2014/12/19 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技