今日内容:
一、字节编码
#字节编码的定义:
#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要诞生先有万国编码 py3: utf-8, 采用万国编码来解释文本内容
#1.5# 思考:unicode与utf-8什么关系unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,
读取效率极高utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存取数据#“abc你好”
#1.6重点(*****)
#1.1 unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快
#1.2(*****)
1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
3. 编码操作:编码encode()、解码decode(
二、字符与字节
直接编码的重点: 1. 字节的存储方式:8个二进制位 2. 字符所占字节数:根据编码的不同,所占字节数可能不同 3. 三种格式字符串:u''、b''、r''
''' 了解 u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8') '''
# unicode字符串,默认字符串 s1 = u'abc你好\n不好' 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、关闭文件*****"""
1.什么是文件 2.为何用文件 3.如何用文件 4.文件操作 5.常用方法 6.文件内指针的移动 7.with的使用
1.什么是文件
文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位
2.为什么用文件
用户/应用程序对文件的读写操作会由操作系统转换称具体的硬盘操作 所以用户/应用程序可以通过简单的读/写文件来间接地控制复杂的硬盘的存储操作,实现将内存中的数据用具保存到硬盘中
3.如何用文件
f = open(...)#打开文件,拿到一个文件对象f,f就相当于 绝对地址: open(r"D:\sh.txt") 相对地址: .\ # 当前目录下 #向操作系统发送请求,要求操作系统打开文件 f = open(r"sh.txt",encoding="utf-8") f.read() 强调:一定要在程序结束前关闭打开的文件
4.文件操作
4.1 主模式
r:只读模式L(默认) 当文件不存在时,会报错 当文件存在时,文件指针指向文件的开头 w:只写模式 当文件不存在时,新建一个空文档 当文件存在时,清空文件内容,文件指针跑到文件的开头 info = ['egon:123\n','alex:456\n','lxx:lxx123'] f.writelines(info) #将列表里面的数据,一行行的写进去(自动换行) a:追加 写模式 当文件不存在时,新建一个空文档,文件指针跑到文件的末尾 当文件存在时,文件指针跑到文件的末尾 在文件打开不关闭的情况下,连续的写入,下一次写入一定是基于上一次写入指针位置而继续的 f.write() f.writelines()