欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python命令窗口tab自动补全设置和UnicodeDecodeError问题解决方案

程序员文章站 2022-04-01 20:40:54
...

Python cmd窗口补全及UnicodeDecodeError问题解决

Python cmd窗口tab自动补全

以下Python cmd窗口tab补全设置转自Python (Win)readline和tab补全的安装

    1. 首先需要安装pyreadline包
      执行
      python -m pip install pyreadline
      安装pyreadline包
    1. 写一个module,tab.py
      在文件路径下#PWD\Python\Lib\tab.py
#python Tab
import sys   
import readline   
import rlcompleter   
import atexit   
import os    
readline.parse_and_bind('tab: complete')   
# windows
histfile = os.path.join(os.environ['HOMEPATH'], '.pythonhistory')   
# linux
# histfile = os.path.join(os.environ['HOME'], '.pythonhistory')   
try:   
    readline.read_history_file(histfile)   
except IOError:   
    pass   
atexit.register(readline.write_history_file, histfile)   

del os, histfile, readline, rlcompleter  
    1. 开启python时,运行tab.py
      每次开启python时,运行import tab,即可加载,实现自动补全和历史命令加载。

UnicodeDecodeError问题解决

    1. 每次开启python,都会报错
Failed calling sys.__interactivehook__
...
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb8 in position 18: illeg
  • 2.这是由于读取history文件时的编码出现问题。解决方案
    在文件目录下
    C:\Users\shenlei\AppData\Local\Programs\Python\Python37\Lib\site-packages\pyreadline\lineeditor
    找到history.py,打开之后在第82行,读取history的open函数后面加上编码格式
    for line in open(filename, 'r', encoding='UTF-8'):
    指定UTF-8编码格式,就可以排除错误。
相关标签: Python 编程