一:字符编码
1.什么是字符编码
文字符号-------------编码--------------------------------》数字
文字符号《-------------解码-------------------------------数字
2.为何要用字符编码
为了解决乱码问题:
1.存取都用同一张字符编码
2、为何要研究字符编码
为了解决乱码问题:
1、存取都用同一张字符编码表
3、储备知识
4、字符编码表的发展历程
1、一家独大
ASCII:只能识别英文字符
用8个bit对应一个英文字符
2、天下大乱
GBK:能识别中文和英文
用16个bit(2Bytes)对应一个字符
shift-JIS
Euc-KR
3、归于一统
unicode:能识别万国字符
用16bit(2Bytes)对应一个字符
utf-8
5.运行python程序的三个阶段
1.先启动一个python解释器
2.python解释器会将文件内容从硬盘读入内存
3.python解释器会解释执行刚刚读入内存的代码,识别语法
总结:
英文字符----》内存(ASCII格式的二进制数)----》硬盘(ASCII格式的二进制数)
中文、英文字符---》内存(GBK格式的二进制数)----》硬盘(GBK格式的二进制数)
日文、英文字符---》内存(Shif-jis格式的二进制数)--》硬盘(Shif-jis格式的二进制数)
万国字符----》内存(unicode格式的二进制数)--》硬盘(utf-8格式的二进制数)
二:文件的打开方式
一:控制读写操作模式
r:只读===========>默认
w:只写
a:只追加写
二:控制读写内容的模式
t:读写都是文本格式,即读写都是用字符串========》默认
b:读写都是bytes格式,bytes等同于二进制
强调:
如果是t模式,一定记住加上encoding=“编码格式”
如果是b模式,一定记住别加encoding=“编码格式”
三 案例
3.1 案例1
r:在文件存在的时候,文件指针调到文件开头,文件不存在直接报错
f=open(“a.txt”,mode=“rt”,encoding=‘utf-8’)
# res=f.read()
# print(res)
f.close()
3.2 案例2
w:在文件存在的时候会清空文件,文件指针调到文件开头,文件不存在会创建空文档
f=open(“c.txt”,mode=“wt”,encoding=‘utf-8’)
# f.write(“aaaa\n”)
# f.write(“bbbb\n”)
# f.write(“cccc\n”)
f.write(“11111\n”)
f.close()
3.3 案例3
a:在文件存在的时候不会清空文件,文件指针调到文件末尾,文件不存在会创建空文档
f=open(“d.txt”,mode=“at”,encoding=‘utf-8’)
f.write(“6666666\n”)
f.write(“6666666\n”)
f.write(“6666666\n”)
f.write(“11111\n”)
f.close()
3.4 案例4:rb wb ab
f=open(“a.txt”,mode=‘rb’)
res=f.read()
print(res.decode(“utf-8”))
f.close()
f=open(“D:\fullstack16\day05\视频\01 本周内容.mp4”,mode=‘rb’)
res=f.read()
print(res)
f.close()
f=open(“a.txt”,mode=‘ab’)
f.write(“你好”.encode(‘utf-8’))
f.close()