この記事では、Pythonでストリームを扱う方法を解説します。
ストリームとは?
ストリームとは、データが出入りする対象(メモリやファイル、ネットワークなど)をプログラムで扱えるように抽象化したもの。
Pythonでストリームを扱うには io
モジュール、または open()
を使います。
ストリームには主に以下の3つがあります。
これらのストリームは汎用的なカテゴリでそれぞれ様々なストレージが利用されます。
テキスト I/Oは、open()
、またはio.StringIO()
を使うことで生成できます。
import io
# open() を使ったテキストストリームの生成
f = open("test.txt", "w", encoding="utf-8")
# io.StringIO() を使ったテキストストリームの生成(インメモリ)
o = io.StringIO("最初の文字列")
バイナリ I/Oは、open()
、またはio.BytesIO()
を使うことで生成できます。
import io
# open() を使ったバイナリストリームの生成(モードに b を指定する)
f = open("binary.jpg", "wb")
# io.BytesIO() を使ったバイナリストリームの生成(インメモリ)
o = io.BytesIO(b"initial")
Raw I/Oは、open()
を使ってバッファリングを無効にし、ファイルをバイナリーモードで開くことで生成できます。使う機会はほぼありません。
f = open("raw.jpg", "wb", buffering=0)
標準出力もテキストストリームの1つです。
import sys
print(sys.stdout)
実行結果
<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
書き込み専用のストリームなのでwrite()
で書き込むことができる。
import sys
stdout = sys.stdout
# 書き込む
stdout.write("abc")
実行結果
abc
この記事では、ストリームについて解説しました。
ストリームを使うことでファイルや標準入出力などからデータを読み取ったり、書き込んだりすることができます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ