Python open() 函數
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'