python编码来自txt文件的已定义变量

时间:2015-05-21 10:27:37

标签: python python-3.x encoding

如何从python 3中的txt文件中获取文本本身? 所以,我有一个包含这样的字符串的文件:

"name":"\u0414\u043e\u0436\u0434\u044c"

我写的代码是:

with open(r'C:\Temp\f1.txt','r') as f1:
    data=f1.read()
f1.close()
#print(data)
f2 = open(r'C:\Temp\f2.txt','w+',encoding='utf-8')
f2.write(data)
f2.close()

我想知道为什么数据var不是'utf-8'编码的?

如果我这样写:

var = '"name":"\u0414\u043e\u0436\u0434\u044c"'
print(var)
一切都很顺利。输出数据是文本

1 个答案:

答案 0 :(得分:1)

在Python 3中,它有点棘手,你必须首先将字符串转换为字节然后解码它:

SIGTSTP

由于您将文本存储在文件中,因此可以以二进制模式读取文件。然后它更清洁:

bytes(var, 'ascii').decode('unicode-escape')