扩展Python控制台实现中文反馈信息

简介: 扩展默认的Python控制台, 将报错/警告等信息翻译成中文.

"中文编程"知乎专栏原文地址
2019_02_10_python_

参考了周蟒的实现, 运行效果如下:

$ python3 解释器.py
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 05:52:31)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(ZhPyConsole)
>>> 学
Traceback (most recent call last):
  File "<console>", line 1, in <module>
命名错误: 命名'学'未定义
>>> for i in range(1,4):
...     生
...
Traceback (most recent call last):
  File "<console>", line 2, in <module>
命名错误: 命名'生'未定义

完整源码在: 解释器.py

相关源码如下, 即改写InteractiveInterpreter.showtraceback方法. 仅为演示之用, 直接用了字符串替换.:

    def showtraceback(self):
        sys.last_type, sys.last_value, last_tb = ei = sys.exc_info()
        sys.last_traceback = last_tb
        try:
            行 = traceback.format_exception(ei[0], ei[1], last_tb.tb_next)
            汉化行 = []
            if sys.excepthook is sys.__excepthook__:
                for 某行 in 行:
                    for 英文 in self.字典:
                        某行 = 某行.replace(英文, self.字典[英文])
                    汉化行.append(某行)
                self.write(''.join(汉化行))
            else:
                # If someone has set sys.excepthook, we let that take precedence
                # over self.write
                sys.excepthook(ei[0], ei[1], last_tb)
        finally:
            last_tb = ei = None

定制sys.excepthook貌似更为合适, 还需研究如何实现.

参考资料

周蟒-zhpy

2019-02-10

相关文章
|
1月前
|
数据挖掘 数据安全/隐私保护 开发者
使用Spire.PDF for Python插件从PDF文件提取文字和图片信息
使用Spire.PDF for Python插件从PDF文件提取文字和图片信息
86 0
|
1月前
|
数据可视化 Python Windows
使用 Python 代码在 windows 控制台打印正弦三角函数
使用 Python 代码在 windows 控制台打印正弦三角函数
19 0
|
2月前
|
数据可视化 数据挖掘 开发工具
【办公自动化】用Python批量从上市公司年报中获取主要业务信息
【办公自动化】用Python批量从上市公司年报中获取主要业务信息
70 0
|
3月前
|
开发者 Python
京东商品类目信息数据接口python
京东商品类目信息数据接口python
26 0
|
3月前
|
API Python
1688公司档案信息数据接口Python
1688公司档案信息数据接口Python
33 1
|
3月前
|
编译器 Linux C语言
python C语言扩展之简单扩展-使用ctypes访问C代码
python C语言扩展之简单扩展-使用ctypes访问C代码
18 0
|
15天前
|
开发者 索引 Python
实践:如何使用python在网页的表格里抓取信息
实践:如何使用python在网页的表格里抓取信息
|
16天前
|
机器学习/深度学习 数据可视化 数据挖掘
用Python进行健康数据分析:挖掘医疗统计中的信息
【4月更文挑战第12天】Python在医疗健康数据分析中扮演重要角色,具备数据处理、机器学习、可视化及丰富生态的优势。基本流程包括数据获取、预处理、探索、模型选择与训练、评估优化及结果可视化。应用案例包括疾病预测、药物效果分析和医疗资源优化,例如使用RandomForestClassifier进行疾病预测,Logit模型分析药物效果,以及linprog优化医疗资源配置。
|
1月前
|
数据采集 存储 自然语言处理
使用Python分析网易云歌曲评论信息并可视化处理
在数字化时代,音乐与我们的生活紧密相连,而网易云音乐作为国内知名的音乐平台,拥有庞大的用户群体和丰富的歌曲评论信息。这些评论信息不仅反映了用户对于歌曲的情感态度,还蕴含着大量的有价值的数据。通过对这些评论信息进行分析和可视化处理,我们可以更好地理解用户的喜好、情感变化以及歌曲的影响力。
42 0
|
1月前
|
监控 安全 API
怎么用Python找回微信撤回信息
怎么用Python找回微信撤回信息
34 0