Pythonでは、ファイル内の任意の位置にアクセスすることが可能です。これを「ランダムアクセス」と呼びます。
ランダムアクセスとは?
ランダムアクセスとは、ファイル内の読み込み/書き込み位置を開発者の好きな位置に移動させることを指します。このようなファイル操作を行うことで、余計なデータ読み込みを省略し、ファイル内の必要なデータ領域だけをピンポイントで読み込み/書き込みできます。
Pythonでのランダムアクセス
Pythonでは、seek()
メソッドを使用してファイル内の任意の位置にアクセスできます。
import os
with open('file.dat', 'rb') as fin:
fin.seek(4, os.SEEK_SET) # 先頭から4バイト目の位置に移動する
data = fin.read() # 4バイト目以降のデータをすべて読み込む
print(data)
上記のコードでは、seek()
メソッドを使用してファイルの先頭から4バイト目の位置に移動しています。
ランダムアクセスの利点
ランダムアクセスは、大量のデータを扱う際に特に有用です。例えば、数万件のレコードが存在するバイナリファイルを扱う場合、ランダムアクセスを使用すれば、レコードが固定長の場合は読み込み位置を計算式で計算することができます。そのため、現実的にはレコード長分の読み込みコストだけで済みます。
まとめ
Pythonでは、seek()
メソッドを使用してランダムアクセスを行うことができます。大量のデータを効率的に扱うためには、このランダムアクセスの技術が非常に有用です。