首頁  >  文章  >  後端開發  >  python學習筆記 - StringIO以及BytesIO

python學習筆記 - StringIO以及BytesIO

高洛峰
高洛峰原創
2017-02-17 11:50:341568瀏覽

之前我們所說的都是讀寫真正的文件。其實我們也可以在記憶體中虛擬一個檔案進行讀寫。 Python提供給咱們的官方module有io.StringIO和io.BytesIO.

io.StringIO

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,釋放記憶體。

io.BytesIO

StringIO只能處理字串類型的數據,BytesIO可以用於處理二進位類型的資料。 BytesIO的用法與StringIO類似

StringIO.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中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn