day 7
一、
#coding:gbk # x = "上" # 文件头指定的编码,即gbk格式的二进制 # print(type(x)) # x = u"上" # 存成unicode格式的二进制 # print(x,type(x)) # print(x) x = u"上" # print([x,]) res=x.encode('gbk') print([res,]) # 你a好 # 1+7bit|1+7bit|1+7bit|1+7bit|1+7bit
二、
x = "上" # 在python3中,存成unicode格式的二进制 # print(type(x)) # res1=x.encode('utf-8') # print(res1,type(res1)) # unicode----------encode---------->gbk二进制 # res2=x.encode('gbk') # print(res2,type(res2)) # gbk二进制---------decode---------->unicode # print(res2.decode('gbk'))
三、文件处理
#coding:utf-8 ''' 1 什么是文件 文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位 2 为何要用文件 用户/应用程序对文件的读写操作会由操作系统转换成具体的硬盘操作 所以用户/应用程序可以通过简单的读\写文件来间接地控制复杂的硬盘的存取操作 实现将内存中的数据永久保存到硬盘中 user=input('>>>>: ') #user="egon" 3 如何用文件 文件操作的基本步骤: f=open(...) #打开文件,拿到一个文件对象f,f就相当于一个遥控器,可以向操作系统发送指令 f.read() # 读写文件,向操作系统发送读写文件指令 f.close() # 关闭文件,回收操作系统的资源 上下文管理: with open(...) as f: pass ''' # open(r'D:\SH_fullstack_s3\day07\a.txt') # f=open(r'a.txt',encoding='utf-8') #向操作系统发送请求,要求操作系统打开文件 # print(f) # f的值是一个文件对象 # print(f.read()) # f.close() # 向操作系统发送请求,要求操作系统关闭打开的文件 # print(f) # f.read() # 强调:一定要在程序结束前关闭打开的文件 # 上下文管理with with open(r'a.txt',encoding='utf-8') as f,\ open('b.txt',encoding='utf-8') as f1: print(f.read()) print(f1.read())
四、文件处理详细介绍
一 文件的打开模式 r: 只读模式L(默认的) w: 只写模式 a: 只追加写模式 二 控制读写文件单位的方式(必须与r\w\a连用) t : 文本模式(默认的),一定要指定encoding参数 优点: 操作系统会将硬盘中二进制数字解码成unicode然后返回 强调:只针对文本文件有效 b: 二进制模式,一定不能指定encoding参数 优点: ''' # # with open('a.txt',mode='rt',encoding='utf-8') as f: # data=f.read() # print(data,type(data)) # with open('1.png',mode='rt',encoding='utf-8') as f: # data=f.read() # with open('1.png',mode='rb',) as f: # data=f.read() # print(data,type(data)) # with open('a.txt',mode='rb',) as f: # data=f.read() # # print(data,type(data)) # print(data.decode('utf-8')) # with open('a.txt',mode='rt',encoding='utf-8') as f: # data=f.read() # print(data) #一 r: 只读模式L(默认的) # 1 当文件不存时,会报错 # 2 当文件存在时,文件指针指向文件的开头 # with open('a.txt',mode='rt',encoding='utf-8') as f: # res1=f.read() # print('111===>',res1) # res2=f.read() # print('222===>',res2) # print(f.read()) # print(f.readable()) # print(f.writable()) # print(f.readline()) # print(f.readline()) # for line in f: # print(line) # l=[] # for line in f: # l.append(line) # print(l) # print(f.readlines()) # 二 w: 只写模式 # 1 当文件不存时,新建一个空文档 # 2 当文件存在时,清空文件内容,文件指针跑到文件的开头 # with open('c.txt',mode='wt',encoding='utf-8') as f: # print(f.readable()) # print(f.writable()) # print(f.read()) # # f.write('哈哈哈\n') # f.write('你愁啥\n') # f.write('瞅你咋地\n') # f.write('1111\n2222\n333\n4444\n') # info=['egon:123\n','alex:456\n','lxx:lxx123\n'] # for line in info: # f.write(line) # f.writelines(info) # with open('c.txt',mode='rb') as f: # print(f.read()) # with open('c.txt',mode='wb') as f: # f.write('哈哈哈\n'.encode('utf-8')) # f.write('你愁啥\n'.encode('utf-8')) # f.write('瞅你咋地\n'.encode('utf-8')) # 三 a: 只追加写模式 # 1 当文件不存时,新建一个空文档,文件指针跑到文件的末尾 # 2 当文件存在时,文件指针跑到文件的末尾 # with open('c.txt',mode='at',encoding='utf-8') as f: # print(f.readable()) # print(f.writable()) # f.read() # f.write('虎老师:123\n') # 在文件打开不关闭的情况下,连续的写入,下一次写入一定是基于上一次写入指针的位置而继续的 # with open('d.txt',mode='wt',encoding='utf-8') as f: # f.write('虎老师1:123\n') # f.write('虎老师2:123\n') # f.write('虎老师3:123\n') # with open('d.txt',mode='wt',encoding='utf-8') as f: # f.write('虎老师4:123\n') # with open('d.txt',mode='at',encoding='utf-8') as f: # f.write('虎老师1:123\n') # f.write('虎老师2:123\n') # f.write('虎老师3:123\n') with open('d.txt',mode='at',encoding='utf-8') as f: f.write('虎老师4:123\n')