python IO模組【二】:open函式詳解
使用open函式可以非常方便的探究IO模組中的具體類的屬性與方法,以及對字串及位元組資料的讀寫處理。其函式簽名及註解如下所示:
open(name, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None )
- 功能:開啟檔案,根據不同模式,返回不同的檔案物件,如果開啟檔案失敗,會丟擲OSError,注意IOError已經是OSError的別名了。當以文字模式開啟時,會返回TestIOWrapper,當以二進位制只讀模式開啟時,返回BufferedReader;當以二進位制只寫模式開啟時,返回BufferedWriter;當以二進位制讀寫模式開啟時,返回BufferedRandom。
- name:1)值為檔名或者路徑名;2)也可以是一個整數,這個整數表示檔案描述符,如果檔案描述符被指定,則當開啟的檔案物件被關閉時,對應的檔案描述符也會被關閉,除非指定
引數closefd
為False。 - mode:
指定檔案開啟的模式,非常重要的引數
,預設檔案以只讀的文字模式開啟,可選的引數值包括:1)“w”,寫入模式,當檔案不存在時,建立一個新檔案並寫入;當檔案存在時,先截斷檔案為空檔案,然後再寫入。2)“x”,寫入模式,開啟一個新檔案並寫入,若檔案已經存在會報FileExistsError錯誤。3)“a“ 附加模式,另一種寫入模式,當檔案不存在時,先新建檔案,然後再寫入資料;若檔案存在,則將新資料追加到末尾。4)”b“二進位制模式,開啟的檔案物件只接受位元組型字串。5)”t“文字模式,開啟的檔案物件只接受文字型字串,儲存的位元組會先根據特定的編碼方式解碼成文字字串。 - encoding: 指定編碼的方式,僅適用於文字模式,因為二進位制模式不需要編碼解碼。
- buffering:指定快取策略,當值為0時,表示關閉快取,這種策略只能在二進位制模式中使用;當值為1時,表示選擇1行文字,這中策略只能在文字模式中使用;當值大於1時,表示固定大小的快取空間。當不指定buffering引數時,對於二進位制模式,一般相當於指定8129個位元組長度的快取空間;對於非互動式的文字模式,也相當於指定8129個位元組長度的快取空間,對於互動式的文字模式,相當於取文字的一行。
- error:僅適用於文字模式,指定編碼錯誤的處理方式,預設方式為”strict“,表示遇到編碼錯誤,就丟擲VauleError;還有ignore策略,表示忽略不能編碼的資料。
- newline:指定universal newline mode,該引數僅適用於文字模式,有效取值為None, ‘’, ‘\n’, ‘\r’, and ‘\r\n’,本質就是指定如何換行。對於讀操作,1)當值為None時,universal newline mode被啟用,文字中的任何’\n’, ‘\r’, and ‘\r\n’字元都會被先轉換成’\n’,然後返回資料。2)當值為’‘時,universal newline mode被啟用,文字中的任何’\n’, ‘\r’, and ‘\r\n’字元不會被轉換,而是直接返回。3)對於其他值,niversal newline mode不會被啟用,文字僅會在指定值的地方換行,並且不做轉換直接返回文字。對於寫入操作,當值為None時,任何的’\n’會先轉換成os.linesep,在ubuntu中就是’\n’,然後寫入。2)如果值為空或者’\n’,則不進行任何轉換而是直接寫入。3)如果是其他有效字元,則先將’\n’轉換成指定值,然後寫入。
- closefd:為True表示檔案物件關閉時,對應的檔案描述符關閉;為False時,表示檔案物件關閉時,當name引數的值不是檔案描述符時,該引數必須為True。
- opener:將一個可呼叫物件作為opener,自定義的opener必須返回一個檔案描述符。
相關文章
- re模組 函式模式詳解函式模式
- python的os模組的常見函式及用途詳解Python函式
- Python 正規表示式模組詳解Python
- python模組詳解Python
- python threading模組有哪些函式Pythonthread函式
- python socket函式詳解Python函式
- Python之time模組詳解Python
- hive視窗分析函式使用詳解系列二之分組排序視窗函式Hive函式排序
- 使用 Python 函式進行模組化Python函式
- python檢視模組下的函式Python函式
- Python中Numpy函式詳解Python函式
- Python如何將函式儲存在模組中Python函式
- socket模組函式函式
- python open 開啟是什麼型別的檔案-詳解Python中open()函式指定檔案開啟方式的用法...Python型別函式
- Python正規表示式 findall函式詳解Python函式
- python之logging日誌模組詳解Python
- Python學習筆記_函式_匯入模組Python筆記函式
- Python檢視模組(變數、函式、類)方法Python變數函式
- 用函式實現模組化程式設計二函式程式設計
- No.7、函式模組函式
- Python隨機函式random使用詳解Python隨機函式random
- Python3 pickle模組的使用詳解Python
- python3.x中argparse模組詳解Python
- 『無為則無心』Python函式 — 36、Python中的模組Python函式
- Python函式與模組的精髓與高階特性Python函式
- 藉助Python 函式進行模組化程式碼Python函式
- python將函式寫入模組中的小技巧Python函式
- Python中open函式怎麼操作檔案Python函式
- matplotlib模組詳解
- difflib模組詳解
- psutil模組詳解
- python函式每日一講 - float函式型別轉換詳解Python函式型別
- Python區域性函式及用法詳解Python函式
- open和close函式函式
- 【模組二】Python進階Python
- SetupDiGetClassDevs函式詳解dev函式
- Lua封裝函式模組並由其他模組呼叫封裝函式
- Python內建函式(二)Python函式