day008 文件操作
一、文件操作
1 f = open(path, mode= "", encoding= "") 2 3 # path 绝对路径 4 f = open('d:\模特主妇护士班主任.txt',mode='r',encoding='UTF-8') 5 content = f.read() 6 print(content) 7 f.close() 8 9 #bytes ---->str 10 f = open('模特主妇护士班主任',mode='r',encoding='utf-8') 11 content = f.read() 12 f.write('fjsdlk') # 会报错 13 f.close() 14 15 f = open('模特主妇护士班主任',mode='rb',) 16 content = f.read() 17 print(content) 18 f.close() 19 20 f = open('log',mode='r+',encoding='utf-8') 21 print(f.read()) 22 f.close() 23 24 f = open('log',mode='r+b') 25 print(f.read()) 26 f.write('大猛,小孟'.encode('utf-8')) 27 f.close() 28 29 30 31 #对于w:没有此文件就会创建文件 32 f = open('log',mode='w',encoding='utf-8') 33 f.write('骑兵步兵') 34 f.close() 35 36 # 先将源文件的内容全部清除,在写。 37 f = open('log',mode='w',encoding='utf-8') 38 f.write('附近看到类似纠纷') 39 f.close() 40 41 f = open('log',mode='w+',encoding='utf-8') 42 f.write('aaa') 43 f.seek(0) 44 print(f.read()) 45 f.close() 46 47 f = open('log',mode='wb') 48 f.write('附近看到类似纠纷'.encode('utf-8')) 49 f.close() 50 51 f = open('log',mode='a',encoding='utf-8') 52 f.write('佳琪') 53 f.close() 54 55 f = open('log',mode='a',encoding='utf-8') 56 f.write('佳琪') 57 f.close() 58 59 f = open('log',mode='a+',encoding='utf-8') 60 f.write('佳琪') 61 f.seek(0) 62 print(f.read()) 63 f.close() 64 65 f = open('log',mode='ab') 66 f.write('佳琪'.encode('utf-8')) 67 f.close() 68 69 70 # 功能详解 71 72 obj = open('log',mode='r+',encoding='utf-8') 73 content = f.read(3) # 读出来的都是字符 74 f.seek(3) # 是按照字节定光标的位置 75 f.tell() # 告诉你光标的位置 76 print(f.tell()) 77 content = f.read() 78 print(content) 79 f.tell() 80 f.readable() # 是否可读 81 line = f.readline() # 一行一行的读 82 line = f.readlines() # 每一行当成列表中的一个元素,添加到list中 83 f.truncate(4) 84 for line in f: 85 print(line) 86 f.close() 87 88 f = open('log',mode='a+',encoding='utf-8') 89 f.write('佳琪') 90 count = f.tell() 91 f.seek(count-9) 92 print(f.read(2)) 93 f.close() 94 95 with open('log',mode='r+',encoding='utf-8') as f,\ 96 open('log',mode='w+',encoding='utf-8') as f1:
二、文件保存账号密码
1 username = input('请输入你要注册的用户名:') 2 password = input('请输入你要注册的密码:') 3 with open('list_of_info',mode='w',encoding='utf-8') as f: 4 f.write('{}\n{}'.format(username,password)) 5 print('恭喜您,注册成功') 6 lis = [] 7 8 i = 0 9 while i < 3: 10 usn = input('请输入你的用户名:') 11 pwd = input('请输入你的密码:') 12 with open('list_of_info',mode='r+',encoding='utf-8') as f1: 13 for line in f1: 14 lis.append(line) 15 if usn == lis[0].strip() and pwd == lis[1].strip(): 16 print('登录成功') 17 break 18 else:print('账号和密码错误') 19 i+=1
三、再论编码
1 #str --->byte encode 编码 2 3 s = '二哥' 4 b = s.encode('utf-8') 5 print(b) 6 7 # byte --->str decode 解码 8 s1 = b.decode('utf-8') 9 print(s1) 10 11 s = 'abf' 12 b = s.encode('utf-8') 13 print(b) 14 15 # byte --->str decode 解码 16 s1 = b.decode('gbk') 17 print(s1)
四、作业
把文件的内容替换
1 # 修改文件 2 with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2: 3 for line in f: 4 if '星儿' in line: #班主任:星儿 5 line = line.replace('星儿','啊娇') 6 #写文件 7 f2.write(line) #小护士:金老板 8 9 import os 10 os.remove('小护士班主任') #删除文件 11 os.rename('小护士班主任.bak','小护士班主任') #重命名文件

浙公网安备 33010602011771号