1、對文件內容的循環展示
1)先定義一個文件對象
f = open('一朵丁香花',encoding = 'utf-8')
2)直接循環文件對象,每次循環時,就是取每一行的數據
for line in f:
print('line:',line)
運行結果:
①先查看下文本文件:
②查看運行結果:
2、文件的高效讀寫
1)open的方式
fw = open('wangmd','w') #用寫模式,打開wangmd這個文件
fw.write('lalala') #緩衝區
fw.flush() #將緩衝區裏面的數據立即寫到磁盤上
fw.close() #關閉文件
運行結果:
2)with的方式
with open('wangmd','w') as fw: #用with的方式打開文件
fw.write('xxx') #寫入xxx
運行結果:
兩種方式的對比:
利用open打開文件,每次執行完open之後,需要執行close操作關閉文件。而with的話,執行完open後,會自動關閉文件,不需要再加上close操作。
3、將文件中的內容進行替換
方法一:簡單粗暴,弊處:只適用於內容較少的文件,內容較多效率會低
1、先獲取到文件裏面所有的內容
2、修改內容
3、清空原來文件裏面的內容
4、重新寫入
1)獲取到文件裏面的內容
f = open('userinfo','a+') #打開userinfo文件
f.seek(0) #將文件指針挪到最前面
all_data = f.read() #讀取文件中的信息
2)修改內容
new_data = all_data.replace('aaa','bbb') #將文件中的aaa替換爲bbb
f.seek(0)
3)清空原來文件裏面的內容
f.truncate() #清空文件內容
4)重新寫入
f.write(new_data)
f.flush()
f.close()
方法二:高效的處理方式
1、先打開原文件,再打開一個空文件
2、循環處理原來文件裏面的每一行數據,處理完之後,寫到新文件裏面
3、把原來的文件刪除,將新聞界的名字改成原來的
import os #引入os
with open('aaa',encoding = 'utf-8') as fr, open('.aaa','w',encoding = 'utf-8') as fw:
#用讀模式打開原文件,用寫模式打開新文件
for line in fr:
line = line.lstrip() #去掉左邊的空行
if line: #判斷這一行是否有數據
line = line.replace('aaa','bbb') #將文件中的aaa全部替換爲bbb
fw.write(line) #寫到新文件中
os.remove('aaa') #刪除原來的文件
os.rename('.aaa','aaa') #將新文件重命名