一、字符编码
1.字符编码是针对文字的,只跟文本文件有关。
2.数据由内存保存到硬盘时内部操作
内存中的unicode二进制数字 》》编码(encode)》》》utf-8格式的二进制
3.数据由硬盘读到内存
硬盘中的utf-8格式的二进制 >>>>>>解码(decode)>>>>>> 内存中的unicode二进制数字
4.
ASCII码表
用八位二进制表示一个英文字符
GBK
用2Bytes表示一个中文字符 还是用1Bytes表示一个英文字符
5.万国码unicode
统一用2Bytes表示所有的字符
#浪费存储空间
#io次数增加,程序运行效率降低。
6.计算机使用的编码
现在的计算机
内存都是unnicode
硬盘都是utf-8
7.unicode 的两个特点
1.兼容万国字符
2.unicode 与其他各国编码都有对应关系
8.python3和python2的编码的区别
puthon 2
默认使用ASCII码(因为在开发python的时候,unicode还没有盛行)
python3
默认使用utf-8
9.文件头
# coding:utf-8
1.因为所有的编码都支持英文字符,所以文件头才能够正常生效
10.保证不乱码在于
文本文件以什么编码编的就以什么编码解
文件处理
1. 文件:操作系统提供给用户操作复杂硬件(硬盘)的简易接口。
2.内部操作
# print(f.read()) # windows操作系统默认的编码是gbk
# f.read() # 向操作系统发请求 读取文件内容
# f.close() # 告诉操作系统 关闭打开的文件
2.文件打开的模式
r 只读模式
w 只写模式
a 追加写模式
3.操作文件单位的方式
t 文本文件 t在使用的时候需要指定encoding参数 如果不知道默认是操作系统的默认编码
b 二进制 一定不能指定encoding参数
"""
# mode参数 可以不写 不写的话默认是rt 只读的文本文件 这个t不写默认就是t
4.r模式
在打开文件的时候 如果文件不存在 直接报错
# 文件路径可以写相对路径 但是需要注意该文件必须与执行文件在同一层文件下mode关键字可以不写
w模式:
w模式一定要慎用
# 1.文件不存在的情况下 自动创建该文件
# 2.当文件存在的情况下 会先清空文件内容再写入
a模式
# 1.当文件不存在的情况下 自动创建该文件
# 2.当文件存在的情况下,不清空文件内容, 文件的光标会移动文件的最后