Python:文件中的反斜杠(\ u…)

问题描述 投票:0回答:1

我有一个带有\ 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.x escaping python-unicode
1个回答
0
投票

您需要内置的unicode_escape text encoding

首先,您应该以二进制模式(unicode_escape)打开文件,以便它可以让您调用数据上的'rb'。然后只需执行.decode()

修改后的代码:

line.decode('unicode_escape')

实际中:

with open('ti.txt', 'rb') as f:
    for line in f:
        print(line.decode('unicode_escape'))
© www.soinside.com 2019 - 2024. All rights reserved.