字符编码与文件
字符编码
我们点击图标的时候,数据从硬盘读到内存,而我们保存数据的时候,是从内存读到硬盘。
内存只能短暂保存数据,永久保存数据还得需要硬盘。
那么你把数据从硬盘读到内存,就相当于在是在解码,
同样当你要把内存中的数据读到硬盘 ,你就需要让硬盘能够知道你存的是什么,
就需要进行编码,这就形成了编码与解码。
如果出现乱码,只有一个原因:
你的编码和解码中,有一个出了问题
记住一句话:你用什么编码的,就用什么去解码。
字符编码只和文本有关
python2与python3在字符编码上的区别:
python2将文本文件读入解释器默认使用ASCII码
python3将文本文件读入解释器默认使用utf-8
字符编码表:就是字符和数字之间的对应关系
(1)ASCII码 用八位二进制表示一个英文字符
(2)GBK码 用2个Bytes表示一个中文字符,还是用一个字节表示英文字符
(3)万国码 统一用2Bytes表示所有字符
但是它有一个致命的弱点:浪费存储空间,io操作增加,执行效率降低
文件
文件的打开方式:
(1)r 只读
此模式在打开文件的时候,如果文件不存在就会直接报错。
(2)w 只写
此模式一定要慎用,如果要打开的文件不存在,那么就会自动创建,如果文件存在,就会删除原值,然后填入新的值。
(3)a 追加写
当文件不存在时,自动创建文件
当文件存在时,不会清空文件,而是在后追加数据
操作文件单位的方式:
(1)t
文本文件在使用的时候要指定encoding参数,如不指定,默认是操作系统的编码
(2)b
二进制在使用的时候,一定不要指定encod参数,
浙公网安备 33010602011771号