Python

【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”の使い方が分からなくなったときは、本記事をご活用くださいな。

LINEスタンプ配信中!

フクロウのLINEスタンプ

当サイトのマスコットキャラクター

「フクロウのくるる」が

LINEスタンプになりました!

勉強で疲れたあなたに癒しをお届け☆

お迎え待ってます(*・ω・)ノ♪

今すぐお迎えする

40個セットがたったの50コインとお得です