PT--文件操作


 

  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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM