Python_day06
1、字符编码
1)什么是字符编码:
人类的字符----》翻译----》数字
字符与数字一一对应的关系
Ascll:英文的字符编码----在内存中:1byte 一个字节表示一个字母
GBK:中文的字符编码----在内存中:2byte 两个字节表示一个中文
Unicode:内存中固定的编码:2byte 两个字节表示一个字符
UTF-8:Unicode的升级版,所有字符都能用的字符编码:1byte表示一个英文字符, 3byte表示一个中文字符。
保证文件代码不发生乱码的诀窍是:
以什么编码存就以什么编码读取;
!!我们能控制的编码只是硬盘上的编码,而内存中的编码是不可变的,目前只能是Unicode;
2、文件处理
1、打开文件:
f = open(r‘文件名的路径‘,mode=‘打开文件的格式‘,encoding=‘操作文件的编码格式‘)
2、读/写
f.read()
f.write()
3、关闭文件
f.close() #回收操作系统的资源 (因为打开文件的时候不只是把文件读入内存中,
还有就是应用程序向操作系统发送请求,打开了文件处理程序,需要把操作系统中的IO流给关掉,减少资源占用)
#只读 只读模式,当文件名不存在的时候,就会报错
1 f = open(r‘kermit.txt‘,mode=‘r‘,encoding=‘utf-8‘) 2 print(f.read()) 3 print(f.write(‘hahahahha‘)) #io.UnsupportedOperation: not writable 4 print(f.readline()) 5 print(f.readline()) 6 print(f.readline()) 7 print(f.readline()) 8 print(f.readlines()) 9 for i in f: 10 print(i,end=‘‘) 11 f.close()
# 只写 :当文件名不存在的时候就会生成一个文件,当文件名存在的时候就会覆盖原文件。
换行符号\n
1 with open(‘kermit.txt‘,mode=‘w‘,encoding=‘utf-8‘) as k: 2 k.write(‘hahhahaha‘) 3 k.writelines([‘kermit\n‘,‘jam‘]) 4 k.close()
#末尾追加 当文件存在的时候,光标移动到末尾,当文件不存在的时候创建一个文件。
f = open(‘kermit.txt‘,mode=‘a‘,encoding=‘utf-8‘)
1 with open(‘kermit111.txt‘,mode=‘a‘,encoding=‘utf-8‘) as k: 2 k.write(‘lalalalal‘) 3 4 k.close() 5 6 with open(‘kermit.txt‘,mode=‘a‘,encoding=‘utf-8‘) as k: 7 k.writelines([‘kermit\n‘,‘ssss\n‘,‘wafawf‘]) 8 k.close()