为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 ...
随机推荐
- 免费服务器AWS免费使用一年详细教程
AWS免费使用详细教程 福利,亚马逊AWS免费试用一年,简直是爽歪歪.无论是搭建网站,还是自建**,都是不错的选择.详细如下: 开始准备:信用卡一张. 详细视频教程见:http://v.youku.c ...
- shell编程:变量替换
定义变量:$ var_1="I love you, Do you love me" 输出变量:$ echo $var_1 打印结果:I love you, Do you love ...
- SpringBoot集成Thymeleaf模板
1.添加起步依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- ArangoDB 的graph查询
一个graph包含vertices 和edges.edges被存储在edges document当中.vertices可以是document collection 中的document也可以是edge ...
- 32-python基础-python3-列表永久排序方法-sort()方法
1-数值的列表或字符串的列表,能用 sort()方法排序. 实例1: 实例2: 2-可以指定 reverse 关键字参数为 True,让 sort()按逆序排序. 实例1: 3-关于 sort()方法 ...
- Java菜鸟笔记
System.out.println( ); 会在输出完毕后自动换行 System.out.print( ); 在输出完毕后不会自动换行 MyEclipse/Eclipse快捷键: 定位到某一行, ...
- 【目录】mysql 基础篇系列
随笔分类 - mysql 基础篇系列 mysql 开发基础系列22 SQL Model(带迁移事项) 摘要: 一.概述 与其它数据库不同,mysql 可以运行不同的sql model 下, sql m ...
- ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
EO: Entity Object 就是EF中的实体类, 对EO的操作会对数据库产生影响. DTO: Data Transfer Object 数据传输对象.用于在各层之间传递数据的普通类,DTO有哪 ...
- mavenFailed to execute goal org.apache.maven.plugins:maven-surefire-plugin解决方法
在项目上右键==>属性==>java构建路径==>源代码,然后把几个文件夹全部删除,然后再添加文件夹中把它们从新添加,然后再maven intall,部署.
- new Date() vs Calendar.getInstance().getTime()
System.currentTimeMillis() vs. new Date() vs. Calendar.getInstance().getTime() System.currentTimeMil ...