1,什么是字符编码?
字符编码表:人类的字符<--------->数字
ASCII码表:只能识别英文字符
用八个二进制位表示一个英文字符,1个英文字符=8bit
2,为何用字符编码
因为计算机无法识别人类的字符,人类与计算机打交道都是用人类的字符,而计算机无法识别人类的字符只能识别二进制,所以必须为人类的字符编码成计算机能识别的二进制数字
GBK:能识别汉字与英文
1个汉字=2个字节(bytes)=16个bit
1个英文字符=一个字节8bit
一个字节即1bytes=8个二进制位=8bit
Unicode:能识别万国字符,一个字符用两个字节即十六个bit
特点:能识别万国语言
与各个国家的字符编码都有映射关系
utf-8:一个bytes表示英文,三个bytes表示一个汉字
utf-8是Unicode的转换格式
重点:
编码:字符---------->编码---------->unicode的二进制---------->编码---------->GBK的二进制
解码:GBK的二进制---------->解码---------->unicode的二进制---------->解码---------->字符
文件处理
1.什么是文件?
文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位。
文件的操作核心就是:读跟写。
即我们只需要对文件进行读写操作,就是对操作系统发起请求,然后由操作系统将用户或者应用程序对文件的读写操作转换成具体的硬盘指令(比如控制盘片转动,控制机械手臂移动来读写数据)
2.为何要有文件?
因为内存无法永久保存数据,但凡我们想要永久保存数据都需要保存到硬盘中去,
而操作文件就可以实现对硬件的操作
3,如何用文件?
name=‘egon’
pwd=‘123’
把内存中的数据存储到硬盘中去
把硬盘中的数据读到内存中
rawstring
f = open(r'D:zrgday7a.txt') 向操作系统发起请求,要求操作系统打开文件,占用操作系统的资源
如果不写默认是mode=‘r'
f = open(r'D:zrgday7a.txt',mode=‘r') 向操作系统发起请求,要求操作系统打开文件,占用操作系统的资源
data=f.read 向操作系统打开发起读的请求,会被操作系统转换成具体的硬盘操作,将内容由硬盘读入内存
f.close 向操作系统发起请求,要求操作系统关闭文件,回收操作系统的资源
总结:
1,打开文件
2,读写文件
3,关闭文件
绝对路径:
从盘符开始写(C:\E:\D:\)开始写一个完整的路径
相对路径:
相对于当前执行文件所在的文件夹开始找
f=open(r'a.txt',mode=’r‘)
文件的打开模式
# 控制文件读写内容的结果两种模式: t模式:text b模式bytes
# 注意:
# 1,t与b这两种模式均不能单独使用,都需要与r/w/a之一连用
# 2,
# 操作文件的基础模式有三种
# r
# w
# a
# r:read,只读模式
# 1,只能读,不能写
# 2,文件不存在时,会报错
f = open(r'b.txt',mode='rt',encoding='utf-8')
data1 = f.read()
print('第一次读',data1)
f.close()
# print(data.decode())
f = open(r'b.txt',mode='rt',encoding='utf-8')
data2=f.read()
print('第二次读',data2)
# print(type(data))
f.close()
# 上下文管理
with open('b.txt','rt',encoding='utf-8')as f:
# 文件的操作
print(f.read())
print('====>')
print('====>')
print('====>')
# 上下文管理
with open('b.txt','rt',encoding='utf-8')as f,
open('d.txt','wt',encoding='utf-8')as f1:
# 文件的操作
data = f.read()
f1.write(data)