ホームページ  >  記事  >  バックエンド開発  >  Python学習メモ - StringIOとBytesIO

Python学習メモ - StringIOとBytesIO

高洛峰
高洛峰オリジナル
2017-02-17 11:50:341590ブラウズ

前に話したのは、実際のファイルの読み取りと書き込みです。実際、読み取りと書き込みのためにメモリ内のファイルを仮想化することもできます。 Python によって提供される公式モジュールは、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 オブジェクトのすべてのメソッドを持つファイルのようなオブジェクトを作成します。 StringIO には、getvalue() メソッドと close() メソッドという 2 つの特別なメソッドもあります。

  • getvalue()メソッドはStringIOに書き込まれた内容を取得するために使用されます。

  • close()メソッドはStringIOを閉じてメモリを解放します。

io.BytesIO

StringIOは文字列型データのみを処理できますが、BytesIOはバイナリ型データを処理するために使用できます。 BytesIOの使い方はStringIO

StringIO.StringIO

と似ています 文献を検索してみると、StringIOの下にStringIOもあることを発見し、両者は非常によく似ています。すべてをGoogleで検索しました。 stackoverflow には答えがあります:

Unicode テキストのメモリ内ストリーム。TextIOWrapper を継承します。

このモジュールは、文字列バッファ (メモリ ファイルとも呼ばれる) を読み書きするファイルのようなクラス StringIO を実装します。 io .StringIO は、Unicode を処理します。これは、推奨される Python 3 ライブラリ構造を反映します。

StringIO.StringIO は、従来の Python 2 ライブラリ構造を反映します。

新しいライブラリ構成に向けて前進します。組み込みの Unicode 非対応 open を置き換えるには io.open を使用する必要があります。

前進します。一般的な考え方は、StringIO が python2 のレガシーであり、置き換えられるということです。 by io.StringIO 今後は io.StringIO を使用することをお勧めします。


Python 学習ノート - StringIO と BytesIO 関連の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。