扩展Python控制台实现中文反馈信息
发布日期:2021-06-29 15:31:42 浏览次数:3 分类:技术文章

本文共 1317 字,大约阅读时间需要 4 分钟。

"中文编程"知乎专栏

2019-02-10-python控制台扩展

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

$ python3 解释器.pyPython 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 darwinType "help", "copyright", "credits" or "license" for more information.(ZhPyConsole)>>> 学Traceback (most recent call last):  File "
", line 1, in
命名错误: 命名'学'未定义>>> for i in range(1,4):... 生...Traceback (most recent call last): File "
", line 2, in
命名错误: 命名'生'未定义

完整源码在:

相关源码如下, 即改写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貌似更为合适, 还需研究如何实现.

参考资料

转载地址:https://codeinchinese.blog.csdn.net/article/details/87695659 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:扩展Python控制台实现中文反馈信息之二-正则替换
下一篇:[转] 用python编写控制网络设备的自动化脚本3:启动

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月07日 01时26分18秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章