python对txt文件中定义的变量进行编码
如何从Python3中的txt文件中获取文本本身? 所以,我有一个包含如下字符串的文件:python对txt文件中定义的变量进行编码,python,python-3.x,encoding,Python,Python 3.x,Encoding,如何从Python3中的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.clos
"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()
我想知道为什么数据变量不是“utf-8”编码的
如果我这样写:
var = '"name":"\u0414\u043e\u0436\u0434\u044c"'
print(var)
一切都很顺利。在Python 3中,输出数据是一个文本。这有点棘手,您必须先将字符串转换为字节,然后对其进行解码:
bytes(var, 'ascii').decode('unicode-escape')
由于文本存储在文件中,因此可以以二进制模式读取文件。那么它就更干净了:
with open(r'C:\Temp\f1.txt', 'rb') as f:
var = f.read()
var.decode("unicode-escape")
你凭什么认为它没有编码?一切进展如何?如果将open()作为f1使用
,则不需要调用f1.close()
。我的意思是需要获取文本而不是unicode