(1)用open命令打開一個文件並賦值給一個變量,獲得一個文件句柄python
(2)對文件句柄進行文件操做編碼
(3)用close命令關閉文件spa
1 f = open("test","r+",encoding="utf-8") 2 date = f.read() 3 f.close()
f = open("文件絕對路徑」,「文件要進行的操做」,編碼格式)操作系統
1.f.read(),讀取所有文件內容,文件較大時最好不要使用code
2.f.readline(),讀一行文件內容blog
3.f.readlines(),以列表形式讀取文件所有內容內存
4.f.close(),關閉文件utf-8
5.f.write(),往文件中寫入內容ci
6.f.closed(),判斷文件是否關閉it
7.f.seek(),移動光標至指定字節位置
8.f.tell(),告知當前光標所在的字節位置
9.f.truncate(),截斷文件,從頭至指定位置
10.f.flush(),刷新
原則:以什麼方式保存就以什麼方式打開,不指定編碼格式python2默認ascii,python3默認utf-8
編碼:encode
解碼:decode
flush原理:
1.文件操做是經過軟件將文件從硬盤讀到內存
2.寫入文件的操做也都是存入內存緩衝區buffer(內存速度快於硬盤,若是寫入文件的數據都從 內存刷到硬盤,內存與硬盤的速度延遲會被無限放大,效率變低,因此要刷到硬盤的數據咱們統 一往內存的一小塊空間即buffer中放,一段時間後操做系統會將buffer中的數據一次性刷到硬盤)
3.flush即,強制將寫入的數據刷到硬盤
1 進度條 2 import sys,time 3 for i in range(50): 4 sys.stdout.write("%") 5 sys.stdout.flush() 6 time.sleep(1)
seek以字節方式讀取,特別的,read(3)表明讀取三個字符,seek有三種光標移動方式, seek(位置,參數),seek有三種位置參數0,1,2
seek(位置,0),表示相對於文件開頭位置移動光標
seek(位置,1),表示相對於上一次光標所在的位置移動光標
seek(位置,2),表示相對於文件最後一個位置移動光標
文件句柄 = open("文件路徑","操做模式")
打開文件的模式有:
r , 只讀模式 [默認模式,文件必須存在,不存在則拋出異常]
w, 只寫模式【不可讀;不存在則建立;存在則清空內容】
x, 只寫模式【不可讀;不存在則建立,存在則報錯】
a, 追加模式【可讀; 不存在則建立;存在則只追加內容】
"+"表示能夠同時讀寫某個文件
r+, 讀寫【可讀,可寫】
w+, 寫讀【可讀,可寫】
x+, 寫讀【可讀,可寫】
a+, 寫讀【可讀,可寫】
"b"表示以字節的方式操做
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a + b
注:以b方式打開時,讀取到的內容是字節類型,寫入時也須要提供字節類型,不能指定編碼