今日内容:
一、字节编码
#字节编码的定义:
#1.1人类识别的语言与计算机识别语言的媒介(*****)
#人类识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的信息交流,一定需要一个媒介,进行两种标识符的转化
#1.2编码表:
#1.3计算运行的三大核心硬件:
CPU:将数据渲染给用户,*处理器
内存:临时存放数据,断电后消失
硬盘:永久存储数据,断电后还有
#1.4:了解:编码表的发展史
1. ascii(ASCII):字母、数字、英文符号与计算机01标识符的对应关系
思考:如何将128个字符用01完全标签
二进制:11111111 => 255 => 1bytes(1字节) => 8个二进制位
2.中国:研究汉字与计算机01标识符的对应关系:gb2312 => GBK(***) => GB18030
日本:Shift_JIS
棒子:Euc-kr
解决乱码问题
3. 制造一个可以完成万国字符与计算机01标识符的对应关系的编码表
编码表:unicode表
py2:ascii,没有按万国编码,原因py2早先有ASCII吗时还没有UNICODE
py3:默认 utf-8, 采用万国编码来解释文本内容
#1.5# 思考:unicode与utf-8什么关系unicode:用2个字节来存储汉字,用1个字节来存储英文字母,占运行 内存空间较多,i/o效率低
读取效率极高utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存取数据#“abc你好”
#1.6重点(*****)
#1.1 unicode与utf-8采用的是同一张unicode编码表,utf-8(1个字节1bytes代表一个字符,3个字节代表一个中文字符)是unicode编码表体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快
#1.2(*****)
1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
3. 编码操作:编码encode()、解码decode(
二、字符与字节
直接编码的重点:
1. 字节的存储方式:8个二进制位
2. 字符所占字节数:根据编码的不同,所占字节数可能不同
3. 三种格式字符串:u'表示unicode进二进制存储文本内容'、b'二进制'、r'原义字符串'
'''
了解
u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8')
'''
s1 = u'abc你好\n不好' 》》》unicode格式编码二进制格式 print(s1) # 字节字符串 s2 = b'abc123\xb7\xb7' print(s2) # 原义字符串: 不对字符串内存做任何操作(eg:\n的转化) s3 = r'abc你好\n不好' print(s3) # 编码与解码 规则:以什么方式存就以什么方式取 s = '123呵呵' n_b = bytes(s, encoding='utf-8') print(n_b) b = b'123\xe5\x91\xb5\xe5\x91\xb5' n_s = str(b, encoding='GBK') print(n_s) # 重点:***** # 将u字符串编码成b字符串 print(u'你好'.encode('utf-8')) # 将b字符串解码成u字符串 print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))
三、文件操作
#三、文件的操作
#计算机中的文件:硬盘中一块存储空间)(虚拟文件)
#文件操作:根据文件名来操作硬盘的那块存储空间,操作方式:1,读read 2 写 write
"""1、打开文件2、操作文件(读:read() 写write()3、关闭文件*****"""
f = open.file()
f.read()
f.close()
1.什么是文件 文件就是暴露给用户操作操作硬件的接口
2.为何用文件 进行存储文件数据
3.如何用文件 with open(r','r',encdind='utf-8')
4.文件操作模式 r a w
5.常用方法
6.文件内指针的移动 seek(0,2) 第一个参数代表指针的位置0 是默认起始位 1 中间 2 是文件尾部 第二参数是指针偏移量 2从开始位迁移2个字符
7.with的使用
1.什么是文件
文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位
2.为什么用文件
用户/应用程序对文件的读写操作会由操作系统转换称具体的硬盘操作
所以用户/应用程序可以通过简单的读/写文件来间接地控制复杂的硬盘的存储操作,实现将内存中的数据用具保存到硬盘中
3.如何用文件f = open(...)#打开文件,拿到一个文件对象f,f就相当于一个遥控器
绝对地址: open(r"D:\sh.txt")
相对地址: .\ # 当前目录下
#向操作系统发送请求,要求操作系统打开文件
f = open(r"sh.txt",encoding="utf-8")
f.read()
f.close()
此时已将文件关闭
强调:一定要在程序结束前关闭打开的文件
4.文件操作
4.1 主模式
r:只读模式(默认) 当文件不存在时,会报错 当文件存在时,文件指针指向文件的开头
w:只写模式 当文件不存在时,新建一个空文档 当文件存在时,清空文件内容,文件指针跑到文件的开头 info = ['egon:123\n','alex:456\n','lxx:lxx123'] f.writelines(info) #将列表里面的数据,一行行的写进去(\n手动换行换行)
a:追加 写模式 当文件不存在时,新建一个空文档,文件指针跑到文件的末尾 当文件存在时,文件指针跑到文件的末尾 在文件打开不关闭的情况下,连续的写入,下一次写入一定是基于上一次写入指针位置而继续的 f.write() f.writelines()