1.字符编码
人类识别的字符等高级标识符与计算机识别的10二进制标识符之间转化的介质,用来完成人与计算机之间的信息交流。
对应关系形成的结构称为编码表
编码表的发展史
1.1 8位二级制就是一个字节1byte=8bit
1.2 ASCII码表
1.3 中国的GBK码表
1.4 万国字符编码表unicode
py2:ascii,没有按万国编码,原因py2诞生(1991)于万国编码(1994)之前
py3: utf-8, 采用万国编码来解释文本内容
1.5 unicode与utf-8什么关系:
unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存取数据
1.6 Unicode与utf-8实际中的应用:
unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快
2.字节与字符
2.1 unicode字符串 a=u'hello 你好' #(默认字符串就是Unicode字符串)
2.2 字节字符串 b=b'hello xe4xbdxa0xe5xa5xbd' #字节字符串
2.3 原义字符串 c=r'hellp
world' 此处
不会换行 直接翻译
出来
2.4 编码与解码
a='hellp world 你好 世界'
n_a=bytes(a,encoding='utf8')
print(n_a)
d=b'hellp world xe4xbdxa0xe5xa5xbd xe4xb8x96xe7x95x8c'
n_d=str(d,encoding='utf-8')
print(n_d)
将u字符串编码成b字符串
print(u'你好 世界'.encode('utf-8'))
将b字符串编码成u字符串
print(b'hellp world xe4xbdxa0xe5xa5xbd xe4xb8x96xe7x95x8c'.decode('utf-8'))
3.文件操作
文件:硬盘中一块存储空间(虚拟的文件)
文件操作:根据文件名来操作硬盘的那块存储空间,操作方式,读read和写write
一、使用文件的三步骤
1打开文件
变量名等于文件空间
文件路径 操作模式(读|写)编码
f = open('a.txt','r',encoding='utf-8') #open打开文件
2操作文件
data =f.read(3)
print(data)
一次读取一行
line=f.readline()
print(line)
按一次性全部取出
lines=f.readlines
print(lines)
逐布一行一行读取
l=[]
for line in f:
print(line)
l.append(line)
print(l)
s=set()
for line in f:
print(line)
s.add(line)
print(s)
3关闭文件
f.close
print(f) #<_io.TextIOWrapper name='a.txt' mode='r' encoding='utf-8'>
二模式:
主模式:r读|w写|a追加
从模式:b按字节操作|按字符操作|+可读可写
基础写
文件不存在:会创建新的文件,再操作文件
文件存在:先清空文件,再操作文件
w=open(b.txt,'w',encoding='utf-8')
w.write('456')
w.close