Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python对txt文件中定义的变量进行编码_Python_Python 3.x_Encoding - Fatal编程技术网

python对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

如何从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.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