扩展Python控制台实现中文反馈信息之二-正则替换
发布日期:2021-06-29 15:31:42
浏览次数:3
分类:技术文章
本文共 1010 字,大约阅读时间需要 3 分钟。
"中文编程"知乎专栏
续前文, 实现了如下效果:
>>> 学Traceback (most recent call last): File "", line 1, in 命名错误: 命名'学'未定义>>> [1] + 2Traceback (most recent call last): File " ", line 1, in 类型错误: 只能将list(而非"int")联结到list>>> [1].lengthTraceback (most recent call last): File " ", line 1, in 属性错误: 'list'个体没有'length'属性>>> def foo():... def bar():... print(type)... bar()... type = 1... >>> foo()Traceback (most recent call last): File " ", line 1, in File " ", line 4, in foo File " ", line 3, in bar命名错误: 在闭合作用域中, 自由变量'type'在引用之前未被赋值
源码在: 现在支持的报错信息列表见测试用例:
参考, 用一系列(现8个)正则表达式匹配和替换实现, 比如:
if re.match(r"NameError: name '(.*)' is not defined", 原始信息): return re.sub(r"NameError: name '(.*)' is not defined", r"命名错误: 命名'\1'未定义", 原始信息)
期间发现Python编译器源代码中的报错信息所处位置比较分散, 似乎有上百处. 下面的打算:
- 首先将它打包发布到Pypi, 参考
- 逐步补充报错信息, 除了在自己使用过程中发现的新报错信息, 也可调研哪些报错最为常见
- 逐步改进中文信息. 比如
只能将list(而非"int")联结到list
=>只能将列表(而非整数)联结到列表
- 上文提到的通过"定制sys.excepthook"实现尚未研究. 如无明显优势, 打算置后.
转载地址:https://codeinchinese.blog.csdn.net/article/details/87696734 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月17日 13时46分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ssh-copy-id 卡住问题
2019-04-29
Random SecureRandom 随机数生成阻塞问题
2019-04-29
tomcat8.5.15 apr模式运行 配置
2019-04-29
Linux命令笔记
2019-04-29
ElasticSearch5.4.3 环境搭建 2017 (1-单节点模式/开发模式)
2019-04-29
ElasticSearch5.4.3 环境搭建 2017 (2-集群搭建)
2019-04-29
Cause: couldn‘t make a guess for 解决方法
2019-04-29
小米手机相册选取后的intent为空?
2019-04-29
Android SurfaceView预览相机黑屏问题解决方案
2019-04-29
Android HTTP 设置UA(User-Agent)及自定义
2019-04-29
git和github的结合使用
2019-04-29
Android开发中常见错误与开发小技巧
2019-04-29