You need to enable JavaScript to run this app. 如何将字符打印为转义序列形式而非对应的字符编码值
优惠活动
大模型
产品
解决方案
定价
更多

如何将字符打印为转义序列形式而非对应的字符编码值

原因

Python内置的repr()函数对控制字符的展示有固定规则:仅会将\n、\t、\r、\f这几个高频转义符显示为反斜杠+字母的形式,退格符\b不在这个默认适配列表里,所以会被渲染为\x08的十六进制编码形式,这就是你原有写法对\b无效的核心原因。

解决方案

方案1:快速替换(简单场景够用)

直接对repr()的输出结果做字符串替换,把\x08替换为你需要的\b即可:

value = '\b'
formatted = repr(value)[1:-1].replace(r'\x08', r'\b')
print(formatted) # 输出结果为 \b

如果需要适配其他同类型转义符(比如响铃符\a对应\x07),可以链式调用replace方法追加规则。

方案2:自定义转义函数(灵活可控)

如果需要统一管理所有转义符的展示规则,避免依赖Python官方对repr()的默认逻辑,可以自己写映射处理函数:

def custom_escape(input_str):
    # 可按需扩展你需要的转义映射规则
    escape_mapping = {
        '\b': r'\b',
        '\t': r'\t',
        '\n': r'\n',
        '\r': r'\r',
        '\f': r'\f',
        '\a': r'\a'
    }
    result = []
    for char in input_str:
        if char in escape_mapping:
            result.append(escape_mapping[char])
        else:
            # 未命中规则的字符走默认repr逻辑
            result.append(repr(char)[1:-1])
    return ''.join(result)

# 测试用例
print(custom_escape('\b hello\t\n')) # 输出:\b hello\t\n

这个方案兼容性更好,也支持你自定义任意字符的展示格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:54:03