为Python终端提供持久性历史记录
有没有办法告诉交互式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终端提供持久性历史记录的更多相关文章
- python终端颜色设置
1.颜色定义说明 格式:\033[显示方式;前景色;背景色m 前景色 背景色 颜色 --------------------------------------- 30 40 黑色 31 41 ...
- python之demo2----改编自python官方提供的turtle_yinyang.py画阴阳的demo
""" 执行 python -m turtledemo 命令查看系统内置demo的源码 绘制:需要通过import turtle引入绘制图形库turtle库 改编自pyt ...
- python 终端模拟模块 pexpect
简单介绍pexpect是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块 ...
- Python终端如何输出彩色字体
实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27 ...
- python终端中退格键,方向键不能使用
在安装Python的时候先安装 yum install readline-devel.x86_64 -y 如果python已经安装过了就重新安装 ./configure make all mak ...
- Python终端输出打印彩色字体的方法
一 实现过程 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是0 ...
- Python 终端输出字体颜色
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表 ...
- python终端打印带颜色的print
原理 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. 转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示 ...
- Python终端自动补全
在-目录下添加一个文件,名字为.pythonstartup.py #!/usr/bin/python # -*- coding: UTF-8 -*- import readline, rlcomple ...
随机推荐
- JeeSite使用(一)大步跑起来
背景:近期准备换个工作,想对之前自己写的代码进行重构,选择了JeeSite 需求:跑起来才是硬道理 方法:1.官方文档有坑,别信他 2.官方文档有坑,别信他 3.官方文档有坑,别信他 一 ...
- netty的原理
1. Netty简介 Netty是一个高性能.异步事件驱动的NIO框架,基于JAVA NIO提供的API实现.它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作 ...
- C# winform 动态操作webService
1.动态操作webService类 public static class WebServiceHelper { #region InvokeWebService //动态调用web服务 public ...
- FZU 2079 最大获利(线段树+DP)
Description Sean准备投资一些项目.有n个投资项目,投资第i个项目需要花费Ci元.Sean发现如果投资了某些编号连续的项目就能赚得一定的钱.现在给出m组连续的项目和每组能赚得的钱,请问采 ...
- 那些年踩过的eleUl上传图片的坑?
html : <el-upload :headers="header" // 请求头参数(一般包含token,认证参数authorization) :data="u ...
- oracle null+字符串问题
select 10 + 10 + 10 from dual结果是30,完全没问题. select null + 10 + 10 from dual结果是空串,但期望的结果是20. select nvl ...
- scss定义全局变量引入sass-resources-loader报错
开发jquery多页应用,引入sass-resources-loader后报 Make sure 'options.resources' is String or Array of Strings. ...
- Shell内置命令——declare
- k8s容器-运维管理篇
二. 运维和管理 维护参考网址 https://jimmysong.io/kubernetes-handbook/practice/install-kubernetes-on-centos.html ...
- 高德地图的权限Activity代码
/** * */package com.amap.location.demo; import java.lang.reflect.Method;import java.util.ArrayList;i ...