Python open() 函數

Python 內置函數 Python 內置函數

python open() 函數用於打開一個檔,創建一個 file 對象,相關的方法才可以調用它進行讀寫。

更多檔操作可參考:Python 檔I/O

函數語法

open(name[, mode[, buffering]])

參數說明:

  • name : 一個包含了你要訪問的檔案名稱的字串值。

  • mode : mode 決定了打開檔的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認檔訪問模式為只讀(r)。

  • buffering : 如果 buffering 的值被設為 0,就不會有寄存。如果 buffering 的值取 1,訪問檔時會寄存行。如果將 buffering 的值設為大於 1 的整數,表明了這就是的寄存區的緩衝大小。如果取負值,寄存區的緩衝大小則為系統默認。

不同模式打開檔的完全列表:

模式描述
r以只讀方式打開檔。檔的指針將會放在檔的開頭。這是默認模式。
rb以二進位格式打開一個檔用於只讀。檔指針將會放在檔的開頭。這是默認模式。
r+打開一個檔用於讀寫。檔指針將會放在檔的開頭。
rb+以二進位格式打開一個檔用於讀寫。檔指針將會放在檔的開頭。
w打開一個檔只用於寫入。如果該檔已存在則打開檔,並從開頭開始編輯,即原有內容會被刪除。如果該檔不存在,創建新檔。
wb以二進位格式打開一個檔只用於寫入。如果該檔已存在則打開檔,並從開頭開始編輯,即原有內容會被刪除。如果該檔不存在,創建新檔。
w+打開一個檔用於讀寫。如果該檔已存在則打開檔,並從開頭開始編輯,即原有內容會被刪除。如果該檔不存在,創建新檔。
wb+以二進位格式打開一個檔用於讀寫。如果該檔已存在則打開檔,並從開頭開始編輯,即原有內容會被刪除。如果該檔不存在,創建新檔。
a打開一個檔用於追加。如果該檔已存在,檔指針將會放在檔的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔不存在,創建新檔進行寫入。
ab以二進位格式打開一個檔用於追加。如果該檔已存在,檔指針將會放在檔的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔不存在,創建新檔進行寫入。
a+打開一個檔用於讀寫。如果該檔已存在,檔指針將會放在檔的結尾。檔打開時會是追加模式。如果該檔不存在,創建新檔用於讀寫。
ab+以二進位格式打開一個檔用於追加。如果該檔已存在,檔指針將會放在檔的結尾。如果該檔不存在,創建新檔用於讀寫。

file 對象方法

  • file.read([size]):size 未指定則返回整個檔,如果檔大小 >2 倍記憶體則有問題,f.read()讀到檔尾時返回""(空字串)。

  • file.readline():返回一行。

  • file.readlines([size]) :返回包含size行的列表, size 未指定則返回全部行。

  • for line in f: print line :通過迭代器訪問。

  • f.write("hello\n"):如果要寫入字串以外的數據,先將他轉換為字串。

  • f.tell():返回一個整數,表示當前檔指針的位置(就是到檔頭的比特數)。

  • f.seek(偏移量,[起始位置]):用來移動檔指針。

    • 偏移量: 單位為比特,可正可負
    • 起始位置: 0 - 檔頭, 默認值; 1 - 當前位置; 2 - 檔尾
  • f.close() 關閉檔

更多內容參考:Python File(檔) 方法

實例

測試檔 test.txt,內容如下:

zaixian1
zaixian2
>>>f = open('test.txt') >>> f.read() 'zaixian1\nzaixian2\n'

Python 內置函數 Python 內置函數