讀文件:rpython
f=open('test.txt',mode='r') for line in f: print(line) f.close()
print自己會換行,文本自帶一個\n,因此有換行編碼
二進制讀取:rbspa
寫文件:w,w會建立新文件,有同名則刪除內容再寫入code
f=open('test1.txt',mode='w',encoding="gbk") #unicode會自動轉碼位gbk f.write("unicode編碼寫入gbk文件") f.close()
二進制寫文件:wb,wb也會建立文件,有同名則刪除內容再寫入視頻
圖片,音樂,視頻等寫入需用wb模式,二進制模式blog
二進制模式寫字符串到問文件,會報錯。提示須要二進制數據,非字符串索引
f=open('test2.txt',mode='wb') #unicode會自動轉碼位gbk f.write("unicode編碼寫入gbk文件") f.close()
解決以上問題,咱們須要用encode方法,encode方法不傳參python3默認用utf-8進行編碼圖片
f=open('test2.txt',mode='wb') #unicode會自動轉碼位gbk f.write("二進制模式寫字符串到文件,須要先進行編碼".encode('gbk')) f.close()
文件追加:a 或ab,源文件用二進制模式追加必須用ab模式,不然亂碼內存
f=open('test3.txt',mode='a',encoding='gbk') #unicode會自動轉碼位gbk f.write("這是追加部份內容") f.close()
混合模式:utf-8
文件操做:
寫入文件,可是內容打開是空白
flush()後會存入硬盤
以w模式打開,判斷是否可讀
seek是按字節移動光標,至於移動多少個字符,與文件編碼有關,gbk移動兩個字節位一個字符,utf8移動三個字節算一個字符,read是按字符讀取
修改文件
先f.seek(),再write()會替換文件,並且可能會存在亂碼。因此修改需所有讀入內存再進行修改,以後再保存覆蓋。