Python2.7如何让print字面输出控制字符而非做可读性处理
Python 2.7 ipdb 查看字符串原始控制字符方案
最优原生方案(无需自定义逻辑)
直接使用Python内置的repr()函数即可,它会返回字符串的官方可打印表示,所有控制字符会以转义形式输出,不会被控制台解析成换行、回车等操作:
# ipdb 中执行 print repr(result)
针对你举的示例:
输入字符串:
result = "new line following:\r\nHere."
输出结果:'new line following:\r\nHere.'
和Java IDE调试器展示的原始内容完全一致,完全不需要自己做替换hack。
备用等效方案
Python 2.7 支持string_escape编码,效果和repr()一致:
# ipdb 中执行 print result.encode('string_escape')
自定义标记展示方案
如果你需要更醒目的控制字符标记(比如你提到的-{LF}-格式),可以预先定义一个通用工具函数,调试时导入使用即可:
def escape_control_chars(s): control_map = { '\r': '-{CR}-', '\n': '-{LF}-', '\t': '-{TAB}-', '\x00': '-{NULL}-' # 可按需补充其他控制字符的映射规则 } for raw_char, show_tag in control_map.items(): s = s.replace(raw_char, show_tag) return s
ipdb中使用方式:
print escape_control_chars(result)
ipdb 快捷操作
在ipdb交互环境中,直接输入变量名按回车,默认会调用格式化打印逻辑,多数场景下会自动输出带转义字符的原始内容,不需要额外加print指令,你可以优先尝试这个操作。
内容的提问来源于stack exchange,提问作者DraxDomax
相关产品推荐
相关产品推荐

