1 # 1. 2 # a.读取源文件,并打印 3 with open('a1.txt',mode='r',encoding='utf-8') as f: 4 for line in f: 5 print(line.strip()) 6 7 # b. 原文后追加 8 with open('a1.txt',mode='r+',encoding='utf-8') as f: 9 f.seek(0,2) #r+时 直接写入会在开头替换内容,需要将光标移动结尾 10 f.write('\n信不信由你,反正我信了。') 11 12 # c. 源文件打印并结尾添加 13 with open('a1.txt',mode='r+',encoding='utf-8') as f: 14 for line in f: 15 print(line.strip()) 16 f.write('\n信不信由你,反正我信了。') 17 18 # d. 清空并替换内容 19 with open('a1.txt',mode='w',encoding='utf-8') as f: 20 f.write('''每天坚持一点, 21 每天努力一点, 22 每天多思考一点, 23 慢慢你会发现, 24 你的进步越来越大。 25 ''') 26 27 # e. 28 import os 29 with open('a1.txt',mode='r',encoding='utf-8') as f,\ 30 open('a1_副本.txt',mode='w',encoding='utf-8') as f1: 31 for line in f: 32 if line=='我说的都是真的。哈哈\n': #文件中的enter换行算字节2个 33 f1.write('你们就信吧\n') #先写入这句话 34 f1.write(line) #再写入原来的话 35 else: 36 f1.write(line) 37 f1.flush() 38 os.remove('a1.txt') 39 os.rename('a1_副本.txt','a1.txt') 40 41 42 # 2. 43 # a. r+的模式打开原文件,判断原文件是否可读,是否可写 44 f=open('t1.txt',mode='r+',encoding='utf-8') 45 # print(f.writable()) 46 # print(f.readable()) 47 # f.close() 48 49 # b. r的模式打开原文件,利用for循环遍历文件句柄 50 f=open('t1.txt',mode='r',encoding='utf-8') 51 for line in f: 52 print(line.strip()) 53 f.close() 54 55 # c. 56 f=open('t1.txt',mode='r',encoding='utf-8') 57 s=f.readlines() 58 for i in s: 59 print(i.strip()) 60 f.close() 61 ''' 62 b中的for循环遍历文件句柄,是一行行的读取文件中的内容. 63 c中的readlines()是将一行的内容读取出来作为列表的元素进行存储, 64 再对列表进行循环,打印其内容. 65 ''' 66 67 # d.r模式读取‘葫芦娃,’前四个字符。 68 f=open('t1.txt',mode='r',encoding='utf-8') 69 s=f.read(4) #读取的是字符 seek()是字节 70 print(s) 71 f.close() 72 73 # e.r模式读取第一行内容,并去除此行前后的空格,制表符,换行符。 74 f=open('t1.txt',mode='r',encoding='utf-8') 75 s=f.readline().strip() 76 print(s) 77 f.close() 78 79 # f. r模式打开文件,从‘风吹雨打.....’开始读取,一直读到最后。 80 f=open('t1.txt',mode='r',encoding='utf-8') 81 lis=f.readlines() 82 for i in range(len(lis)): 83 if i >1: 84 print(lis[i].strip()) 85 f.close() 86 87 # g. 以a+模式打开文件,先追加一行:‘老男孩教育’然后在从最开始将原内容全部读取出来。 88 f=open('t1.txt',mode='a+',encoding='utf-8') 89 f.write('老男孩教育') 90 for i in f: 91 print(i.strip()) 92 f.close() 93 94 # h. 截取原文件,截取内容:‘葫芦娃,葫芦娃,’============ 95 96 f=open('t1.txt',mode='a+',encoding='utf-8') 97 f.truncate(26) 98 f.seek(0) #读取前先将光标移动到前面 99 s=f.read() 100 print(s) 101 f.close() 102 103 104 # 3. 日志变成记录(类似数据库) 105 lis=[] 106 sum=0 107 f=open('a.txt',mode='r',encoding='utf-8') 108 for line in f: 109 dic={} 110 li = line.strip().split(' ') 111 dic['name'] = li[0] 112 dic['price'] = int(li[1]) 113 dic['amount']=int(li[2]) 114 sum = sum + int(li[1]) 115 lis.append(dic) 116 print(lis) 117 print('总价钱为',sum) 118 f.close() 119 120 121 # 4. 文件中所有的alex都替换成大写的SB 122 import os 123 with open('t2',mode='r',encoding='utf-8') as f,\ 124 open('t2_副本',mode='w',encoding='utf-8') as f1: 125 for line in f: 126 line=line.replace('alex','SB') 127 f1.write(line) 128 os.remove('t2') 129 os.rename('t2_副本','t2') 130 131 132 133 # 5. 134 li=[] 135 sum=0 136 with open('a1.txt',mode='r+',encoding='utf-8') as f: 137 for line in f: 138 dic={} 139 lis1=line.strip().split(' ') 140 for i in lis1: 141 lis2=i.strip().split(':') 142 dic[lis2[0]]=lis2[1] #文件中末尾处不能够有空格 143 sum=sum+int(dic['price']) 144 li.append(dic) 145 print(li) 146 print(sum) 147 148 149 150 # 6. #一条条记录变成字典 151 li=[] 152 with open('a1.txt',mode='r',encoding='utf-8') as f: 153 fir_line=f.readline().strip().split() #要用readline 154 for line in f: 155 dic={} 156 lis=line.strip().split() 157 for i in range(len(fir_line)): 158 dic[fir_line[i]]=lis[i] 159 li.append(dic) 160 print(li)