python学习第八天 文件操作 编码补充
1,文件操作。
模特主妇护士老师.txt
1,文件路径:d:\模特主妇护士老师.txt
2,编码方式:utf-8 gbk 。。。。
3,操作方式:只读,只写,追加,读写,写读.....
以什么编码方式储存的文件,就以什么编码打开进行操作。
只读:r
rb
f = open('模特主妇护士班主任',mode='r',encoding='utf-8')
content = f.read()
print(content,type(content))
f.close()
# f = open('模特主妇护士班主任',mode='rb',)
# content = f.read()
# print(content)
# f.close()
r+ 读写
r+b 读写(以bytes类型)
# f = open('log',mode='r+',encoding='utf-8')
# print(f.read())
# f.write('大猛,小孟')
# f.close()
f = open('log',mode='r+b')
print(f.read())
f.write('大猛,小孟'.encode('utf-8'))
f.close()
只写:w
wb
# 先将源文件的内容全部清除,在写。
# f = open('log',mode='w',encoding='utf-8')
# f.write('附近看到类似纠纷')
# f.close()
f = open('log',mode='wb')
f.write('附近看到类似纠纷'.encode('utf-8'))
f.close()
w+
# f = open('log',mode='w+',encoding='utf-8')
# f.write('aaa')
# f.seek(0)
# print(f.read())
# f.close()
w+b
.......
追加
# f = open('log',mode='a',encoding='utf-8')
# f.write('佳琪')
# f.close()
# f = open('log',mode='ab')
# f.write('佳琪'.encode('utf-8'))
# f.close()
2.文件操作程序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#绝对路径 # f = open('d:\模特主妇护士班主任.txt',mode='r',encoding='UTF-8') # content = f.read() # print(content) # f.close() #bytes ---->str # f = open('模特主妇护士班主任',mode='r',encoding='utf-8') # content = f.read() # f.write('fjsdlk') # f.close() # f = open('模特主妇护士班主任',mode='rb',) # content = f.read() # print(content) # f.close() # f = open('log',mode='r+',encoding='utf-8') # print(f.read()) # f.close() # f = open('log',mode='r+b') # print(f.read()) # f.write('大猛,小孟'.encode('utf-8')) # f.close() #对于w:没有此文件就会创建文件 # f = open('log',mode='w',encoding='utf-8') # f.write('骑兵步兵') # f.close() # 先将源文件的内容全部清除,在写。 # f = open('log',mode='w',encoding='utf-8') # f.write('附近看到类似纠纷') # f.close() # f = open('log',mode='w+',encoding='utf-8') # f.write('aaa') # f.seek(0) # print(f.read()) # f.close() # f = open('log',mode='wb') # f.write('附近看到类似纠纷'.encode('utf-8')) # f.close() # f = open('log',mode='a',encoding='utf-8') # f.write('佳琪') # f.close() # # f = open('log',mode='a',encoding='utf-8') # f.write('佳琪') # f.close() # f = open('log',mode='a+',encoding='utf-8') # f.write('佳琪') # f.seek(0) # print(f.read()) # f.close() # f = open('log',mode='ab') # f.write('佳琪'.encode('utf-8')) # f.close() #功能详解 # obj = open('log',mode='r+',encoding='utf-8') # content = f.read(3) # 读出来的都是字符 # f.seek(3) # 是按照字节定光标的位置 # f.tell() 告诉你光标的位置 # print(f.tell()) # content = f.read() # print(content) # f.tell() # f.readable() # 是否刻度 # line = f.readline() # 一行一行的读 # line = f.readlines() # 每一行当成列表中的一个元素,添加到list中 # f.truncate(4) # for line in f: # print(line) # f.close() # f = open('log',mode='a+',encoding='utf-8') # f.write('佳琪') # count = f.tell() # f.seek(count-9) # print(f.read(2)) # f.close() # with open('log',mode='r+',encoding='utf-8') as f,\ # open('log',mode='w+',encoding='utf-8') as f1:
3.用文件操作完成注册、登录
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
username = input('请输入你要注册的用户名:') password = input('请输入你要注册的密码:') with open('list_of_info',mode='w',encoding='utf-8') as f: f.write('{}\n{}'.format(username,password)) print('恭喜您,注册成功') lis = [] i = 0 while i < 3: usn = input('请输入你的用户名:') pwd = input('请输入你的密码:') with open('list_of_info',mode='r+',encoding='utf-8') as f1: for line in f1: lis.append(line) if usn == lis[0].strip() and pwd == lis[1].strip(): print('登录成功') break else:print('账号和密码错误') i+=1
4.编码补充
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#str --->byte encode 编码 # s = '二哥' # b = s.encode('utf-8') # print(b) # #byte --->str decode 解码 # s1 = b.decode('utf-8') # print(s1) # s = 'abf' # b = s.encode('utf-8') # print(b) # #byte --->str decode 解码 # s1 = b.decode('gbk') # print(s1)