首页 > 解决方案 > Python:文件中的反斜杠 (\u...)

问题描述

我有一个包含 \u 格式的 unicode 字符的文件。我想将它们作为普通的 unicode 字符串写入另一个文件。但我无法将反斜杠解释为转义字符。

所以我在一个文件中有这个,例如, \u1203\u1208\u1208 \u0074\u00E4\u0068\u0061\u006C\u00E4\u006C\u00E4应该像这样打印出来。

>>> print("\u1203\u1208\u1208 \u0074\u00E4\u0068\u0061\u006C\u00E4\u006C\u00E4")
ሃለለ tähalälä

但相反,我得到了这个。

>>> with open('ti.txt') as f:
    for line in f:
        print(line)

\u1203\u1208\u1208 \u0074\u00E4\u0068\u0061\u006C\u00E4\u006C\u00E4

我已经尝试了我能想到的所有str(),repr()的组合。encode().decode()但是这些反斜杠最终仍然是反斜杠。

标签: python-3.xescapingpython-unicode

解决方案


最佳答案(2021+):

import codecs

# This is True (successfully decoded):
print(codecs.decode(r"\u1234", "unicode_escape") == "\u1234")

有了这个答案,您无需将字符串转换为bytes-type 对象即可对其进行解码。它替代了许多人错误使用的糟糕的“str.encode().decode()”模式。


推荐阅读