Pythonでは、ストリームデータを扱うための機能が提供されています。ストリームとは、データの入出力を行う、ファイルやネットワークなどを抽象化した概念のことです。Pythonでストリームデータを扱うには、主にio
モジュールを使用します。
ストリームデータとは
ストリームとは、プログラミングでデータの入出力を行うもの (メモリ、ファイル、ネットワークなど)を抽象化した概念です。無限に発生するデータ群や性質・傾向が変化するものは、ストリームデータに該当します。
ioモジュールについて
io
モジュールはPythonでストリームデータを扱うためのモジュールです。テキストストリーム、バイナリストリーム、raw (生)ストリームを扱え、多用されるのは前者2つです。また、ストリームの入出力先には、ファイル (ハードディスク)やメモリがありえます。
ioモジュールの使い方
テキストストリームを作成するには、組み込み関数の open
やio.StringIO
クラスを用います。バイナリストリームを作成するには、open
でバイナリモードを指定したり、io.BytesIO
クラスを用いましょう。
実際のコード
以下に、Pythonでストリームデータを扱う一例を示します。
def copy_stream(ins, outs):
data = ins.read()
outs.write(data)
with open('src.txt') as inf:
with open('dst.txt', 'w') as outf:
copy_stream(inf, outf)
このコードでは、copy_stream
関数を定義し、ins
ストリームから読み取った内容を、outs
ストリームに書き込みます。src.txt
を読み込みモード、dst.txt
を書き込みモードで開き、copy_stream
を実行しています。
以上がPythonでストリームデータを扱う基本的な方法です。これらの知識を活用して、効率的なコードを書いてみてください。