python写文件追加 按行追加_Python3 自学第14天:文件操作,文件句柄,上下文管理器...
前面我們了解了Python的異常處理和自定義異常,今天我們了解下Python的文件操作;
首先Python對文件的處理并不是直接操作的,而是去調(diào)用操作系統(tǒng)接口方法間接操作文件的,這樣做的目的是為了確保操作系統(tǒng)安全性。
1.文件讀寫操作:open函數(shù)
格式:open(file, mode='r', encoding=None, buffering=-1, errors=None, newline=None, closefd=True, opener=None)比較常用的是前四個:file: 必需,文件相對或者絕對路徑mode: 可選,文件打開模式encoding: 一般使用utf8buffering: 設(shè)置讀取文件的緩沖區(qū),是一段內(nèi)存區(qū)域。文件寫操作: 'w'(w:write)
使用'w'寫模式時,如果文件不存在,open()會創(chuàng)建一個新文件。
如果修改上面寫入的數(shù)據(jù)再次執(zhí)行代碼,會發(fā)現(xiàn)文件內(nèi)容是最新的數(shù)據(jù),并不會保留之前已經(jīng)寫入的數(shù)據(jù)。
如果出現(xiàn)亂碼了,你需要設(shè)置encoding='utf-8'參數(shù)。
注意:打開文件并寫入數(shù)據(jù)的時候,并不是立馬就寫入到磁盤文件中,而先寫入內(nèi)存緩沖區(qū)中,然后再寫入文件。
write():將字符串寫入文件,返回的是寫入的字符長度。
writelines(sqe):將一個序列字符串列表寫入文件中,實例代碼:
文件讀操作:'r'(r:read)
如果文件不存在,用'r'讀模式是會報錯的:
文件存在時,運(yùn)行結(jié)果:
read() 讀取所有數(shù)據(jù)
read(size) 每次讀多少個字節(jié)數(shù)據(jù)
readline() 每次讀取一行
readlines() 讀取所有行并返回列表
readlines(size) 每次讀取多行數(shù)據(jù)
2. 操作模式
上面我們已經(jīng)了解了文件的'r'和'w'兩種操作模式,我們再詳細(xì)說下其它操作模式。
追加模式: 'a'(a:append),這種模式數(shù)據(jù)會被追加到末尾,不會覆蓋上次寫的數(shù)據(jù)。
文件加號+ 模式:一般與其它操作模式組合使用表示更新操作
r+ 可讀也可寫,不存在會報錯
w+ 可讀也可寫,不存在會創(chuàng)建文件
a+ 可讀也可寫,不存在會創(chuàng)建文件
w+ 和 a+區(qū)別:開始寫數(shù)據(jù)的位置不同。
注意:w+ 模式每次執(zhí)行都會建一個新文件,如果打開已存在的文件,原有文件內(nèi)容會被刪除的。
二進(jìn)制模式:'b'(b:binary)
open()文件操作默認(rèn)為文本模式,如果操作二進(jìn)制文件(如:圖片)加上 b 就可以了;
如:rb+ wb+ ab+
注意了,文件操作完后一定要記得調(diào)用close()函數(shù)關(guān)閉文件流。
3. 異常處理
4. 文件句柄
文件句柄,這個詞聽起來很抽象,讓人有種距離感,其實就是上面open()函數(shù)返回的文件對象 f,Python中一切皆對象),這樣理解就簡單多了。
實例代碼:
5. 上下文管理器 with
格式:with open() as 別名 :這樣會讓代碼簡單清晰,最關(guān)鍵省去了文件操作完畢后close()函數(shù)的顯示調(diào)用,實例代碼:
6.文件指針移動
上面的實例中,第一次read()時,tell為22,說明在追加模式下指針這會在文件結(jié)尾處,所以讀取不到數(shù)據(jù)。
seek(offset[, whence])
移動文件讀取指針到指定位置。
offset:開始的偏移量,如果是負(fù)數(shù)表示從倒數(shù)第幾位開始。
whence:表示要從哪個位置開始偏移,
0 代表從文件開頭開始算起,默認(rèn)值
1 代表從當(dāng)前位置開始算起,
2 代表從文件末尾算起;
python文件操作就了解到這里,大家有什么問題請在評論區(qū)里留言,下次我們開始正式學(xué)習(xí)面向?qū)ο缶幊?#xff0c;歡迎大家多多關(guān)注!
上一篇:Python3 自學(xué)第13天:異常處理,自定義異常
【極客干貨】從事IT行業(yè)十余年,在移動互聯(lián)網(wǎng)開發(fā),J2EE企業(yè)級開發(fā),IOT物聯(lián)網(wǎng),AI人工智能等方面有點技術(shù)積累,熟練使用C/C++,Java,Python等編程語言。從2009年開始接觸Python,后續(xù)借空閑時間將個人熟悉的技術(shù)干貨系統(tǒng)性分享給大家,也許我的分享會讓你少走一些彎路,如果您覺得還可以,請多多關(guān)注,評論和轉(zhuǎn)發(fā),非常感謝!
總結(jié)
以上是生活随笔為你收集整理的python写文件追加 按行追加_Python3 自学第14天:文件操作,文件句柄,上下文管理器...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cas无法使用_一文彻底搞懂CAS实现原
- 下一篇: 苏联T-62坦克详解