我正在编写一个脚本,该脚本应该对来自多个文件的单词进行操作,这些文件具有something\u0142somethingelse
形式的unicode字符。
我使用python 3所以我想在读取行\u0142
之后应该用'ł'
字符替换,但它不是。我在控制台中收到"something\u0142somethingelse"
。
手动复制"坏"从控制台输出并将其粘贴到:print("something\u0142somethingelse")
它显示正确。
脚本有问题的部分:
list_of_files = ['test/stack.txt']
for file in list_of_files:
with open(file,'r') as fp:
for line in fp:
print(line)
print("something\u0142somethingelse")
stack.txt:
something\u0142somethingelse
输出:
something\u0142somethingelse
somethingłsomethingelse
我在打开此文件时尝试使用utf-8编码,而且我真的没有想法...
答案 0 :(得分:0)
我认为你可以用ast.literal_eval
做你想做的事。这使用与Python解释器相同的语法来理解文字:如eval
但更安全。所以这有用,例如:
a = 'something\\u0142somethingelse'
import ast
b = ast.literal_eval('"' + a + '"')
print '"' + a + '"'
print b
输出应为:
"something\u0142somethingelse"
somethingłsomethingelse