一:字符编码
1)什么是字符编码
将人能识别的字符等高级标识符与计算机所能识别的二进制01进行转化,这之间的交流需要一个媒介,进行两种标识符之间的转化。
字节的存储方式为八个二进制位
2)乱码
存放数据与读取数据采用的字符编码表不一致。
3)软件的运行
1.打开软件。
2.往计算机发送一个打开文件的指令,来打开文件,发送到内存。
3.读取文件数据渲染给用户(python中第三步中逐行解释打开的文件内容,存取编码不一致则无法正常解释,程序崩溃),将执行的结果展示给用户。
4)python代码中的文件头
必须有的格式为encoding:编码表名称
例:encoding:utf-8
5)万国字符可以和01识别符对应的编码表
制造一个可以识别万国字符的编码表——unicode编码表
py2中,默认编码表为:ASCII,没有采用万国编码表unicode
py3中,默认编码表为:utf-8,采用了玩过编码表unicode
6)unicode和utf-8的关系
unicode和utf-8的体现方式不同,采用的都是同一张unicode编码表
unicode:用两个字节存储汉字,用两个字节存储英文字母,缺点是当文件内容较多时,占用的存储空间更大,优点是读取效率极高。
utf-8:用三到六个字节存储汉字,用两个字节存储英文字母,缺点是读取效率低,优点是当文件内容较多时,占用的存储空间小。
存储数据通常用utf-8,传输用utf-8(占用存储空间小,传输效率高),内存中转化为unicode(读取效率极高),再通过utf-8发送给CPU。
7)三种字符串
例:s1=u"" unicode字符串
s2=b"" bytes字节字符串
s3=r"" 原意字符串
8)编码与解码(重点)
encode:将unicode字符串转化为bytes字符串
decode:将bytes字符串转化为unicode字符串
s="hello你好" n_s=bytes(s,encoding="utf-8") print(n_s) n_n_s=str(n_s,encoding="utf-8") print(n_n_s) #两次返回的结果分别为:b'helloxe4xbdxa0xe5xa5xbd' hello你好
二:文件的基本读取操作
主操作:r(读取) w(写入) a(追加)
从操作:b(按字节操作) t(按字符操作) +(可读可写)
了解操作: x(异常写) u(被遗弃了)
经过的三个过程:打开→操作→关闭(文件)
1)文件的写入
obj=open("b.txt","w",encoding="utf-8") info="hello" obj.write(info) obj.close()
#当路径中没有该文件时候,会自动创建一个文件
#写入完成后一定要关闭文件打开,释放操作系统对文件的持有
2)文件的读出
obj=open("b.txt","r",encoding="utf-8") info=obj.read() print(info)
obj.close
#返回值:hello'
#读取完成后一定要关闭文件打开,释放操作系统对文件的持有