国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » 原創課程 » Python

課程內容

Python入門課程NO67課 文件的讀寫高級操作

極客小將2020-09-01-
文件的讀寫緩沖區:文件的讀寫緩沖區對應的是內存中的一塊緩沖區:在對文件執行寫操作時,會先將數據寫到這個緩沖區,緩沖區寫滿以后再刷新到磁盤。在對文件執行讀操作時,會先將文件的一部分數據預讀到這塊內存緩沖區,然后再從這塊緩沖區里進行讀取。在內存中進行讀寫遠快于

文件的讀寫緩沖區:

文件的讀寫緩沖區對應的是內存中的一塊緩沖區:在對文件執行寫操作時,會先將數據寫到這個緩沖區,緩沖區寫滿以后再刷新到磁盤。在對文件執行讀操作時,會先將文件的一部分數據預讀到這塊內存緩沖區,然后再從這塊緩沖區里進行讀取。在內存中進行讀寫遠快于直接在磁盤中進行讀寫,所以在寫入的時候,先寫到內存緩沖區,當數據量大于內存緩沖區的容量時,再一次性刷新到磁盤。讀取也是一樣的道理,先將磁盤文件中的一批數據預讀到內存里來,后續讀取的時候直接在內存緩沖區里進行讀操作,大大提高了讀取的性能。

可以通過執行文件流對象flush方法手動地刷新內存緩沖區。

另外open方法中有一個buffering參數,當給buffering參數傳遞0時,會關閉這個內存緩沖區,該操作只適用于二進制模式。傳遞1時設置行緩沖模式,只能用于文本模式。所謂的行緩沖是指一行緩沖的大小,這里的一行以行尾的換行符來進行標識。傳遞的值大于1時表示設置固定的緩沖區大小。

文件的指針與定位:

file_stream.seek(offset, [from]):offset表示是偏移量,from表示從什么位置處開始進行定位,from的值為0時表示從文件頭開始定位,為1時表示從當前位置開始定位,為2時表示從文件尾開始定位。from的值默認為0。如需從當前位置進行定位,必須以二進制模式來打開文件。

可以把文件指針形象地理解為箭頭,一開始這個箭頭指向文件的首行,應用程序讀取文件時,從箭頭指向的位置處開始讀取。每讀完一行,箭頭就下移一行。

指定文件編碼:

在執行open函數獲取文件流對象時,可以通過encoding參數來指定文件讀寫時的編碼。只有當文件自身編碼和代碼書寫編碼保持一致時,才能正確的讀取文件內容,否則將拋出異常。例如我們用編輯器打開hello.txt輸入極客小將四個字,之后保存為uft-8編碼格式。

如果我們改成以ascii編碼方式讀取,那么就會拋出錯誤異常。

值得一提的是可以utf-8編碼讀取ascii編碼的文件,因為utf-8字符集涵蓋了ascii字符集,所以使用utf-8編碼來讀取文件時,能正確的編解碼,而不會拋出異常信息。

對文件讀寫進行錯誤處理:open方法中的errors參數,用來控制出現編碼和解碼的錯誤時該如何處理。errors參數只能用于文本模式。

舉例說明:

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 天柱县| 鄂尔多斯市| 巴林左旗| 和政县| 平江县| 上高县| 商丘市| 台山市| 额尔古纳市| 收藏| 西乌珠穆沁旗| 辽中县| 信宜市| 武功县| 南丰县| 呼图壁县| 阜新| 苏尼特左旗| 冀州市| 鄂托克前旗| 桂林市| 嫩江县| 灌云县| 茂名市| 扶绥县| 安多县| 腾冲县| 湟中县| 西乡县| 昆明市| 平武县| 淳安县| 图片| 平和县| 额敏县| 延安市| 锡林郭勒盟| 安庆市| 马山县| 时尚| 临安市|