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