我有一个带有\ 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()
的每种组合。但是那些反斜杠仍然以反斜杠结尾。
您需要内置的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'))