Python PR

【Python】パスを簡単に扱える”pathlib”の使い方チートシート

Pythonモジュール”pathlib”の使い方
記事内に商品プロモーションを含む場合があります

こんにちは。現役エンジニアの”はやぶさ”@Cpp_Learningです。

pythonでファイルの入出力を行うとき、”os.path”モジュールを使ってパス設定をするのですが、もっとスマートなやり方をないかなぁ…と調べていたら

Python3.4で追加された、”pathlib”モジュールというものがあることを知りました。

本稿では、”pathlib”の便利な使い方を分かりやすく説明します。

本稿の終盤で、Jupyter Notebookを使って作成した”はやぶさ”の技術ノート公開しますので、最後まで読んで頂けると嬉しいです。

はじめに

以降で説明するソースコードは、下記のディレクトリツリーで検証を行いました。

拡張子のないものはディレクトリです。

import

Python3.4以上を使う場合、あらゆるpath処理が”pathlib”一つで完結します。なので、importするのは”pathlib”のみでOKです。

スポンサーリンク

カレント(現在位置)取得

以下のコードで、カレント(現在位置)を取得することができます。

ディレクト設定

”/” で簡単にディレクトリやパスを繋げることができます。

パスが存在するか確認

指定パスが存在するかどうか確認するには、以下のコードを使います。

True or False で有無が表示されます。

ファイル名取得(拡張子あり)

指定パスのファイル名を取得するに以下のコードを使います。

スポンサーリンク

ファイル名取得(拡張子なし)

拡張子が不要な場合は下記のコードを使います。

拡張子のみ取得

拡張子のみ取得することもできます。

ファイル・フォルダの一覧取得(リスト化)

以下のコードで指定パスの中に保存されているファイル・フォルダをまとめて取得(リスト化)できます。

指定ファイルのみ取得(リスト化)

“img”ディレクトリ内にはtxtファイルとjpgファイルが混在していますが、下記のコードで、jpgファイルのみを取得(リスト化)することもできます。

生成リストのパス取得

上記のコードで生成したリストから、以下のコードでパスを取得できます。

これは、”pathlib”の使い方というより、リストとfor文の扱い方になります。

生成リストからファイル名のみ取得(拡張子あり)

パスなしのファイル名のみ取得することもできます。

生成リストからファイル名のみ取得(拡張子なし)

拡張子が不要な場合は下記のコードを使います。

生成リストからファイル名のみ取得して拡張子を変更する

上記のコードでファイル名のみ取得して、任意の拡張子に付け替えることもできます。例えば、今回の場合は、jpg⇒pngに付け替えます。

こちらも”pathlib”の使い方というより、pythonの文字列操作です。

ソースコード内で定義したリストの拡張子が変わっただけで、実際のファイル拡張子は変わりません。

”はやぶさ”の技術ノート(動作確認)

今まで説明したソースコードをJupyter Notebookで作成して動作確認を行った、”はやぶさ”の技術ノートを公開します。勉強用の教材やチートシートとして活用できます。

”はやぶさ”の技術ノート:pathlibの使い方

まとめ

パス操作は、地味だけど重要な作業です。(パスを間違えて動かないとか、よくある。。)python3.4以上を使う場合は、”pathlib”モジュールを使ってスマートにパスを扱いましょう!

”pathlib”の使い方が分からなくなったときは、本記事をご活用くださいな。

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python