之前我們所說的都是讀寫真正的文件。其實我們也可以在記憶體中虛擬一個檔案進行讀寫。 Python提供給咱們的官方module有io.StringIO和io.BytesIO.
String IO用於在內存在讀取和寫入字串。 StringIO可以傳入一個字元初始化。例如
string = StringIO("This is Demo")
例如:
from io import StringIO s = StringIO() s.write("Yes\nYEs") s.seek(0) # 将指针拨回到开始位置,否则将会读取不到任何东西 content = s.read() print content
StringIO建立的是一個file-like object,擁有File Object的所有方法。 StringIO還有兩個特殊的方法,就是getvalue()方法和close()方法。
getvalue()方法用於取得StringIO中寫入的內容
close()方法關閉StringIO,釋放記憶體。
StringIO只能處理字串類型的數據,BytesIO可以用於處理二進位類型的資料。 BytesIO的用法與StringIO類似
在搜尋文件的時候,發現在StringIO下也有一個StringIO,而且兩者非常類似。所有google了一下。在stackoverflow有個答案:
An in-memory stream for unicode text. It inherits TextIOWrapper.
This module implements a file-like class, StringIO, that reads and writes a string buffera (alkory kory). .StringIO is a class. It handles Unicode. It reflects the preferred Python 3 library structure.
StringIO.StringIO is a class. It handles strings. It reflects the legacy Python 2 library structure.🎧 structure. forward toward the new library organization. The io.open should be used to replace the built-in Unicode-unaware open.
Forward. Move forward.
大意就是StringIO是python2的遺產,後續會被用.IOIO取代.建議使用io.StringIO.
更多python學習筆記- StringIO以及BytesIO相關文章請關注PHP中文網!