python文件读写与编码解码

xiaoxiao2021-02-28  55

#最近接触到python的文件读写与编码解码,非常头疼,下面写一下最近的思考

# 目的为:分析在IDE中将中文字符串以默认编码写入txt文件,在windows系统下修改txt文件的编码,在ide中重新打开此txt出现错误的原因

# IDE的默认编码是utf-8

# 系统的默认编码是ANSI # 对于以下代码 str="奥森山" file=open(r"oythonhill.txt","w") file.write(str) # IDE对字符串"奥森山"用utf-8编码为二进制( 此处编码只针对IDE,需要和下面写入文件的编码区分开来) # 写文件由于未指定编码,按照系统默认ANSI编码为二进制,存储在txt文件中 # 浏览文件时,按照默认ANSI将二进制解码为字符串,因此我们可以在txt窗口中浏览字符串 # 此时,对于以下代码 newfile=open(r"oythonhill.txt","r") newfile=newfile.read() print(newfile) # 可以顺利读取txt文件,读取过程为:根据系统默认的ANSI将存储在txt中的二进制解码为字符串,然后读取 # 如果将txt以Unicode编码另存(如图), 则对于以下代码 newfile=open(r"oythonhill.txt","r") newfile=newfile.read() print(newfile) # 则不能顺利读取,会出现错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence # 原因是另存为操作将字符串"奥森山"重新以Unicode编码为二进制存储,而上述python代码则仍旧以默认ANSI解码,因此出现错误
转载请注明原文地址: https://www.6miu.com/read-42243.html

最新回复(0)