python檔案讀取的幾個細節

2021-09-28 20:14:27 字數 1697 閱讀 3743

1.with 與open with的區別:

關鍵字with在不再需要訪問檔案後將其關閉。這可讓python去確定:你只管開啟檔案,並在需要時使用它,python自會在合適的時候自動將其關閉。     也可以呼叫open()和close()來開啟和關閉檔案,但這樣做時,如果程式存 在bug,導致close()語句未執行,檔案將不會關閉。

2.open(filename,訪問model)

訪問模式說明r

以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式

wb以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 

ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

r+開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。(先讀再寫)

w+開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

rb+以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

3.常用函式

函式名說明

read(size)

size為讀取的長度,開啟模式有b(二進位制) 就按byte為單位,無b就以字元為單位

readline()/readlines()

讀取第一行/把檔案每一行作為乙個list的乙個成員,並返回這個list。

write()

把str寫到檔案中,write()並不會在str後加上乙個換行符

writelines(seq)

把seq的內容全部寫到檔案中(多行一次性寫入)。這個函式也只是忠實地寫入,不會在每行後面加上任何東西。

close()

關閉檔案

flush()

把緩衝區的內容寫入硬碟

tell()

返回檔案游標操作的當前位置,以檔案的開頭為原點

write()

把str寫到檔案中,write()並不會在str後加上乙個換行符

seek(offset[,whence]) 

offset -- 開始的偏移量,也就是代表需要移動偏移的位元組數 

whence:可選,預設值為 0。給offset引數乙個定義,表示要從哪個位置開始偏移;0代表從檔案開頭開始算起,1代表從當前位置開始算起,2代表從檔案末尾算起。

truncate()

把檔案裁成規定的大小,預設的是裁到當前檔案操作標記的位置。如果size比檔案的大小還要大,依據系統的不同可能是不改變檔案,也可能是用0把檔案補到相應的大小,也可能是以一些隨機的內容加上去。

servlet的幾個細節

1 客戶端多次請求servlet,通常情況下,伺服器只會建立乙個servlet物件,也就是說servlet例項物件一旦建立,就會一直在記憶體中,為其他的後面的請求服務,直到web容器退出,才會銷毀,注意servlet物件不是伺服器啟動的時候建立的,而是在客戶端請求的時候才建立的。在servlet整個...

JEECMS的幾個細節

最近想自己寫一些標籤,看了一下jeecms,感覺有些標籤還是很值得學習的。效果 cms.artilist chnlid attr 3 count 6 syscontent 3 1 titlen 35 flashwidth 507 flashheight 338 其中syscontent 3 1 指的...

python高階讀取檔案 Python讀取檔案內容

開啟檔案之後,就可以讀取檔案的內容,檔案物件提供多種讀取檔案內容的方法。開啟test.txt檔案 f open test.txt r 開啟test.txt檔案 f.close 關閉檔案 test.txt檔案有以下內容 hello world.hello python.hello imooc.讀取若干...