はじめに
こんにちは、AIエンジニアの志賀です。
最近は花粉症に悩まされる日々も終わりが差し掛かり、サクラ咲く季節がやって参りました。寒さと花粉を乗り越えた先にある心地の良い期間だと毎年感じさせられます。
このたびはPython開発で重宝するライブラリpathlibの使い方についての技術ブログをご覧いただきありがとうございます。
Python開発において、OSのファイルパスを扱う必要がある場面は多々ありますが、pathlibを使えばOSのファイルパスを簡単に取り扱うことができます。
本記事では、pathlibの基本的な使い方について解説していきますので、Python開発におけるファイルパスの操作について興味のある方は是非最後までご覧ください。
導入
pathlibとは
Pythonには、OSのファイルパスを扱うための標準ライブラリであるos.pathがあります。
しかし、os.pathは文字列操作が必要であったり、パスの区切り文字がOSによって異なるため、パスの扱いに手間がかかることがあります。
こうした問題を解決するために、Python 3.4からはpathlibというライブラリが標準で提供されるようになりました。pathlibは、OSのファイルパスをオブジェクト指向で扱うことができるため、パスの操作が簡単になります。
pathlibの基本的な使い方
まずは、pathlibの基本的な使い方を見ていきましょう。
以下、使用例になります。
from pathlib import Path # ファイルパスの生成 file_path = Path("path/to/file.txt") # ディレクトリパスの生成 dir_path = Path("path/to/directory/") # パスの結合 new_path = dir_path / "new_file.txt"
Pathオブジェクトを生成するには、文字列でパスを指定します。
Windowsの場合は、区切り文字にバックスラッシュを使う必要がありますが、Pathオブジェクトを使えば自動的にスラッシュ(/)に変換されます。
また、パスの結合は「/」演算子で行うことができます。
# ファイルの存在確認 if file_path.exists(): print("File exists") # ファイルの読み込み with file_path.open() as f: content = f.read()
ファイルの存在確認にはexistsメソッドを、ファイルの読み込みにはopenメソッドを使います。
ファイル操作が完了した後には必ずclose()メソッドを呼び出す必要があります。
ただし、with文でブロックを作ることで、close()メソッドの呼び出しを自動的に行うことができるため、open()メソッドの呼び出し時にwith文を使用することが推奨されています。
with文を使用する事で、ファイルのクローズ漏れを防止し、コードをより簡潔に保つことができます。
# ファイルの書き込み with new_path.open(mode="w") as f: f.write("Hello, world!")
ファイルに書き込むには、openメソッドのmode引数に"w"を指定します。書き込みが終わったら、closeする必要がないことに注意しましょう。
# ディレクトリの作成 new_dir = Path("new_directory/") new_dir.mkdir()
ディレクトリを作成するには、mkdirメソッドを使います。
# ディレクトリ内のファイル一覧の取得 for file_path in new_dir.glob("*"): print(file_path) # パスの情報取得 print(file_path.name) # ファイル名を取得 print(file_path.suffix) # 拡張子を取得 print(file_path.parent) # 親ディレクトリを取得 print(file_path.is_file()) # ファイルかどうか判定
globメソッドを使えば、ディレクトリ内のファイル一覧を取得することができます。
また、Pathオブジェクトには、ファイル名、拡張子、親ディレクトリを取得するメソッドが用意されています。
is_fileメソッドで、Pathオブジェクトがファイルかどうかを判定することもできます。
終わりに
以上が、Python開発で重宝するライブラリであるpathlibの基本的な使い方についての解説でした。
いかがでしたでしょうか。
pathlibを使えば、OSのファイルパスをオブジェクト指向で扱えるため、ファイルパスの操作が簡単になります。
また、Pathオブジェクトには、ファイル名、拡張子、親ディレクトリを取得するメソッドが用意されているため、ファイルパスの取り扱いがより容易になります。
是非、Python開発でpathlibを使って、効率的なコーディングをしてみてください。
株式会社フォトラクションでは一緒に働く仲間を募集しています