Python入門課程NO68課 StringIO與BytesIO
我們通過open方法來打開硬盤上的文件,并獲得一個文件流對象,然后通過文件流對象對文件進行讀寫操作。計算機中的存儲設備按其訪問速度和容量大小,被組織成了下圖所示的金字塔形狀的層次結構:
我們讀寫的硬盤文件,存儲在外存儲器中,從圖可看出在硬盤中進行數據讀寫,遠慢于在內存中進行數據讀寫。在本節的內容中,要介紹的是StringIO與BytesIO,通過這兩個模塊可以直接在內存中進行數據讀寫。
StringIO:通過StringIO可以獲取一個基于內存的流對象。StringIO就是在內存中對字符串進行讀寫操作。構造StringIO的方法:StringIO(initial_value='', newline='\n')
參數initial_value用來傳遞一個初始值,默認為空字符串。newline用來定義換行符,默認為'\n'。通過StringIO獲取的內存流對象,與通過open方法獲取的文件流對象,都有相同的接口。通過文件流對象的read, write,seek等方法對文件進行讀寫操作,同樣也可以通過內存流對象的read,write,seek等方法來進行數據的讀寫操作。此外,StringIO對象還提供了一個getvalue方法,用來讀取緩沖區中的全部數據。
BytesIO:BytesIO類似于StringIO,區別在于BytesIO用來在內存中對bytes類型進行讀寫。 執行字符串類型的encode方法,可以轉換為bytes類型。執行bytes類型的decode方法可以轉換為字符串類型。
BytesIO([initial_bytes]):[]表示里面的參數為可選參數,參數initial_bytes表示初始化的bytes類型的數據。
在對BytesIO對象執行getbuffer方法時,會返回一個可讀寫的視圖對象。只要視圖對象存在,就不能對緩沖區的大小進行調整和關閉。如需對緩沖區的大小進行調整或關閉,可以通過del來刪除該視圖對象。

- 上一篇
Python入門課程NO67課 文件的讀寫高級操作
文件的讀寫緩沖區:文件的讀寫緩沖區對應的是內存中的一塊緩沖區:在對文件執行寫操作時,會先將數據寫到這個緩沖區,緩沖區寫滿以后再刷新到磁盤。在對文件執行讀操作時,會先將文件的一部分數據預讀到這塊內存緩沖區,然后再從這塊緩沖區里進行讀取。在內存中進行讀寫遠快于
- 下一篇
Python入門課程NO69課 如何使用json
json的全稱為JavaScript Object Notation,是javascript的對象標記語言,用于將javascript對象序列化為JSON格式的字符串。與Python一樣,也是一種解釋型的腳本語言。json數據格式:json這種數據格式類似于Python中的列表類型和字典類型:由符號[]括起來的數據集合,或由花括號