You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从单行字符串中还原Python traceback的多行格式化格式

单行Python traceback恢复多行格式的最优实现方案

traceback模块仅支持处理原生traceback对象,无法直接输入已经序列化为字符串的单行traceback,最优方案是利用Python traceback文本高度标准化的结构特征,通过正则匹配做拆分格式化,实现成本低、匹配准确率高。

实现代码

import re

def format_single_line_traceback(single_line_tb: str) -> str:
    # 去除首尾可能存在的引号
    tb_content = single_line_tb.strip("'\"")
    # 1. traceback头后面加换行
    formatted = re.sub(
        r'(Traceback \(most recent call last\):)',
        r'\1\n',
        tb_content
    )
    # 2. 每个File行前加换行和标准缩进
    formatted = re.sub(
        r' File "',
        r'\n  File "',
        formatted
    )
    # 3. 最后一个栈帧后加换行,拆分出异常信息行
    formatted = re.sub(
        r'(in \S+) ',
        r'\1\n',
        formatted
    )
    return formatted

效果测试

输入示例:

'Traceback (most recent call last): File "<stdin>", line 1, in <module> Exception'

调用函数后的输出:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception

完全符合预期格式化效果。


内容的提问来源于stack exchange,提问作者Infermath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:09:00