问题
如何把字符串 \\t
转为 \t
,也即去掉多余的反斜杠,将两个反斜杠转为一个反斜杠?
解决方案
如果只需要转换明确、已知且为数不多的字符,可以使用 str.replace
方法:
>>> '\\t'.replace('\\t', '\t')
'\t'
如果需要处理 \\t
,\\n
,\\r
等这样的字符,可以使用 escape_unicode
的解码方式,将字符串再次解码:
>>> '\\t\\n'.encode().decode('unicode_escape')
'\t\n'
扩展
如果想要把 \n
转换为 \\n
怎么办?可以这样处理:
>>> '\t\n'.encode('unicode_escape').decode()
'\\t\\n'
参考
- escaping - How to replace a double backslash with a single backslash in python? - Stack Overflow
- codecs --- 编解码器注册和相关基类 — Python 3.12.4 文档