この記事では、Pythonでストリームを扱う方法を解説します。
ストリームとは?
ストリームとは、データが出入りする対象(メモリやファイル、ネットワークなど)をプログラムで扱えるように抽象化したもの。
Pythonでストリームを扱うには io モジュール、または open() を使います。
スポンサーリンク
ストリームの種類
ストリームには主に以下の3つがあります。
- テキスト I/O
- バイナリ I/O
- raw I/O
これらのストリームは汎用的なカテゴリでそれぞれ様々なストレージが利用されます。
テキスト I/O
テキスト I/Oは、open()、またはio.StringIO()を使うことで生成できます。
import io # open() を使ったテキストストリームの生成 f = open("test.txt", "w", encoding="utf-8") # io.StringIO() を使ったテキストストリームの生成(インメモリ) o = io.StringIO("最初の文字列")
バイナリ I/O
バイナリ I/Oは、open()、またはio.BytesIO()を使うことで生成できます。
import io # open() を使ったバイナリストリームの生成(モードに b を指定する) f = open("binary.jpg", "wb") # io.BytesIO() を使ったバイナリストリームの生成(インメモリ) o = io.BytesIO(b"initial")
raw I/O
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
まとめ
この記事では、ストリームについて解説しました。
ストリームを使うことでファイルや標準入出力などからデータを読み取ったり、書き込んだりすることができます。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ


