ファイルアクセス

Python の標準ライブラリは、ファイル、ファイル名、ファイル内容を扱う様々なツールを提供します。

ファイル名

ファイルを扱う最初のステップは対象ファイルのファイル名を取得することです。Python はファイル名をシンプルな文字列で表現しますが、標準、プラットフォーム独自、 os.path のコンテンツからファイル名を取得するツールを提供します。 oslistdir() でディレクトリの内容を表示するか、ファイル名のリストをパターンから取得する glob を使用してください。 fnmatch を使用すると細かな粒度でファイル名のフィルタリングができます。

メタデータ

ファイル名が分かったら os.stat()stat の定数を使用してファイルサイズやパーミッションといったその他の特性をチェックしても良いです。

ファイルを読み込む

行単位でテキスト入力を処理するフィルタアプリケーションを開発しているなら fileinput が簡単なフレームワークを提供します。 fileinput の API は、行単位で処理する input() が返すオブジェクトをイテレートします。そのオブジェクトはファイル名のためにコマンドライン引数を解析して扱うか、もしくは sys.stdin() から直接読み込みます。その出力はファイルやパイプラインの一部として直接実行可能な柔軟性のあるツールです。

アプリケーションがファイルへランダムアクセスするなら linecache を使用すると行番号を指定して簡単にその行を読み込めます。ファイルのコンテンツはキャッシュに保持されるのでメモリの消費量に注意してください。

一時ファイル

適切な保存場所へ移動する前や一時的にデータを保持するために空っぽのファイルを作成する必要がある場合は tempfile がとても便利です。それは一時ファイルやディレクトリを確実且つセキュアに作成するクラスを提供します。ファイル名は衝突しないことが保証されていて、簡単に推測できないようにランダムな文字列になります。

ファイルとディレクトリ

ファイルの中身ではなく、ファイルそのものを扱いたいこともよくあります。 shutil モジュールは、ファイルやディレクトリのコピー、パーミッションの設定といった高レベルのファイル操作を提供します。

Bookmark and Share