首頁  >  文章  >  後端開發  >  Python檔案的三種可讀可寫模式的特點及區別

Python檔案的三種可讀可寫模式的特點及區別

不言
不言轉載
2018-10-09 16:38:214711瀏覽

本篇文章帶給大家的內容是關於Python文件的三種可讀可寫模式的特點及區別,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

本文主要討論一下檔案的三種可讀可寫模式的特點及互相之間的區別,以及能否實現修改檔案的操作

由於前文已經討論過編碼的事情了,所以這裡不再研究編碼,所有打開操作預設都是utf-8編碼(Linux系統下)

首先我們看r (讀寫)

既然r 既能讀又能寫,那麼能否實現在r 模式下進行檔案的修改呢?答案是肯定的! ,但是,有一點你需要注意,除非你知道在確切的位置修改確切的內容,否則往往不會得到你期望的結果。舉個例子如下:
我們有這樣一個文本“十步殺一人,千里不留行”
假設有這樣一個需求,把“十步殺一人”改成“十步殺一個土匪”,初步設想是:用read(4)讀取到漢字“一”,然後寫入漢字“個土匪”:

with open('job', mode='r+') as f:
    print('先读取四个字符:',f.read(4))
    print('读取后的指针位置:',f.tell())
    f.write('个土匪')
    f.seek(0)
    print(f.read())
    输出为:
    先读取四个字符: 十步杀一
    读取后的指针位置: 12
    十步杀一人,千里不留行个土匪

從結果可以看到,使用read(4)指針確實移動到了指定的位置,但是寫入的時候卻沒有按照設想,而是跑到了文件的末尾。這個原因牽涉到一個叫「CHUNK」的東西,俺滴老師沒教,我也不好深說,等深入理解它後再跟你講哈

以上是Python檔案的三種可讀可寫模式的特點及區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除