python打开文件编码和解码例子_python的文件编码与解码

本文探讨Python处理文件编码的原理,包括内部存储、编码转换、数据类型以及Python2和Python3的区别。通过示例解释了如何进行编码和解码操作,强调了正确指定编码以避免乱码的重要性。
摘要由CSDN通过智能技术生成

内部存储:python文件读取的时候是把存储在内存里的0,1的数据按照你想按照的的编码的方式进行分隔成固定格式读取,比如ASCII码是一个字节,GBK英文兼容ASCII码,GBK汉字是两个字节(GBK通过连续两个八位的最高位是否都是‘1’来区分是否是汉字),UTF-8英文兼容ASCII码,UTF-8的汉字是三个字节。

编码转换:

Python3中文件读取会按照你制定的或者默认的编码方式读取,把分好的一段段数据自动进行转换成unicode。python3中字符串没有decode函数,python3中会直接转成Unicode的形式,不需要转换成Unicode形式了,字符串(str)可以先encode成字节码(bytes),再decode成想要的编码类型(错)(有问题,其实是str--->(encode)--->bytes,bytes--->(decode)--->str

中间并没有类似于Unicode的中间编码类型转换,而是单纯的字节码的重新按decode(‘X’),X的方法来重新编码,要是读取的时候的编码方式Y和X的方式不一样,就会乱码,至于Y,文件读取时,文件的编码方式就是Y,如果程序里的str的话就没有确切的类型而是Unicode,它需要先encode(“Z”),按照Z的方式来解码,把str转换成字节码,才能使用decode函数,这时的X与Z一致才不会乱码)。

因为内存里面直接是Unicode的形式,想转换成什么编码直接encode(X)就行了,只不过这里是字节码bytes,想要转换成字符串只要:

str(字节码,encode=X)

06793df2cdb6f5a4b3a9e9653c5ccef6.png

Python2则要自己先用decode(’X’)转换成Unicode,在通过encode(‘Y’)转换成Y编码类型,例如:按照utf-8进行分段后将数据段通过decode(‘utf-8’)将utf-8转换成Unicode的形式,如果需要可以将Unicode的形式通过encode(‘gbk’)转换成gbk的编码方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值