day 8
阿新 • • 發佈:2017-12-26
文本文件 簡單的 讀取 寫入 post 追加內容 應用 avi clas
一、文件操作
1)介紹:
計算機系統分為:計算機硬件,操作系統,應用程序三部分。
我們用python或其他語言編寫的應用程序若想要把數據永久保存下來,必須要保存於硬盤中,這就涉及到應用程序要操作硬件,眾所周知,應用程序是無法直接操作硬件的,這就用到了操作系統。操作系統把復雜的硬件操作封裝成簡單的接口給用戶/應用程序使用,其中文件就是操作系統提供給應用程序來操作硬盤虛擬概念,用戶或應用程序通過操作文件,可以將自己的數據永久保存下來。
有了文件的概念,我們無需再去考慮操作硬盤的細節,只需要關註操作文件的流程:
#1. 打開文件,得到文件句柄並賦值給一個變量 #2. 通過句柄對文件進行操作 #3. 關閉文件
2)只讀 和 讀寫:
‘r‘ 只讀模式【默認模式,文件必須存在,不存在則拋出異常】 f=open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) data=f.read() f.close() ‘r+‘ 讀寫【可讀,可寫】 f = open(‘a.txt‘,‘r+‘,encoding=‘utf-8‘) data=f.read() f.close()
3)只寫 和 寫讀:
’w‘ 只寫模式【不可讀;不存在則創建;存在則清空內容 f = open(‘log‘,‘w‘,encoding=‘utf-8‘) f.write(‘帶帶大師兄‘) f.close() ‘w+‘ 寫讀【可讀,可寫】 f = open(‘log‘,‘w+‘,encoding=‘utf-8‘) f.write(‘帶帶大師兄‘) print(f.read()) f.close()
4)追加 和 追加寫
‘a‘ 之追加寫模式【不可讀;不存在則創建;存在則只追加內容】 f = open(‘log‘,‘a‘,encoding=‘utf-8‘) f.write(‘帶帶大師兄‘) f.close() ‘a+‘ 寫讀【可讀,可寫】 f = open(‘log‘,mode=‘a+‘,encoding=‘utf-8‘) f.write(‘帶帶大師兄‘) print(f.read()) f.close()
5)只寫 和 寫讀
‘x‘ 只寫模式【不可讀;不存在則創建,存在則報錯】 ‘x+‘ 寫讀【可讀,可寫】
6)rb、wb、ab、xb的用法:
1.對於非文本文件,我們只能使用b模式,"b"表示以字節的方式操作(而所有文件也都是以字節的形式存儲的,使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式) 2.以b方式打開時,讀取到的內容是字節類型,寫入時也需要提供字節類型,不能指定編碼
7)操作文件的方法:
f.read() #讀取所有內容,光標移動到文件末尾 f.readline() #讀取一行內容,光標移動到第二行首部 f.readlines() #讀取每一行內容,存放於列表中 f.write(‘1111\n222\n‘) #針對文本模式的寫,需要自己寫換行符 f.write(‘1111\n222\n‘.encode(‘utf-8‘)) #針對b模式的寫,需要自己寫換行符 f.writelines([‘333\n‘,‘444\n‘]) #文件模式 f.writelines([bytes(‘333\n‘,encoding=‘utf-8‘),‘444\n‘.encode(‘utf-8‘)]) #b模式 #seek 光標移動到第幾個字節的位置 f.seek(0,0) 移動到最開始 f.seek(0,2) 移動到最末尾 #tell 告訴你光標的位置 f.tell() #readable #文件是否可讀 f.readable()
8)truncate的用法:
truncate是截斷文件,所以文件的打開方式必須可寫,但是不能用w或w+等方式打開,因為那樣直接清空文件了,所以truncate要在r+或a或a+等模式下測試效果
9)強大裝逼打開和關閉文件結合代碼:
with open(‘log‘,mode=‘r+‘,encoding=‘utf-8‘) as f:
day 8