WebやS3上のファイルにアクセスするためのPythonライブラリ
はじめに Web上やAWS S3上のファイルへのアクセスを簡単にするために Minato というPythonライブラリの開発を行っています. Minatoの機能は大きく以下の3つです:
オンラインファイルに対する読み書き オンラインファイルのローカルへのキャッシュ ローカルのキャッシュファイルの管理 この記事ではこれらの機能と Minato の基本的な使い方について紹介します.
ファイルの読み書き Minatoを使うことで,通常のPythonでのローカルファイルへの読み書きと同じような手順でオンラインのファイルにアクセスすることができます. 次の例からわかるように,MinatoはURLのスキームから適切なファイルシステムを自動的に選択して使用します.
import minato # Web上のファイルの読み込み with minato.open("http://example.com/path/to/file", "r") as f: content = f.read() # S3上のファイルへの書き込み with minato.open("s3://your_bucket/path/to/file", "w") as f: f.write("Create a new file on AWS S3!") # ローカルのファイルへの書き込み with minato.open("/path/to/local/file", "w") as f: f.write("Create a new file on a local storage!") キャッシュの利用 Web上の大きなデータを読む場合に,ローカルにキャッシュを置くことで何度もファイルをダウンロードすることなくアクセスすることができます. Minatoでは cached_path というメソッドを使うことでURLからローカルのキャッシュへのパスを取得できます. キャッシュが存在していない場合は指定したURLのファイルが自動的にダウンロードされます.
import minato local_path = minato.cached_path("https://example.com/path/to/large/file") with open(local_path) as fp: content = fp.