pathlib.Path.is_dir() で確認する
前のステップでは、os.path.isdir()
を使ってパスがディレクトリかどうかを確認しました。今度は、ファイルシステムパスに対してオブジェクト指向のアプローチを提供する pathlib
モジュールを使って、同じ結果を得る別の方法を探ってみましょう。
pathlib
モジュールは、ファイルシステムパスを表す Path
クラスを提供しています。このクラスには、ファイルやディレクトリとやり取りするためのいくつかのメソッドがあり、その中にはパスがディレクトリかどうかを確認する is_dir()
メソッドも含まれています。
pathlib
を使うには、まず pathlib
モジュールから Path
クラスをインポートする必要があります。そして、確認したいパスを表す Path
オブジェクトを作成します。最後に、Path
オブジェクトに対して is_dir()
メソッドを呼び出して、それがディレクトリかどうかを判断します。
WebIDE のコードエディタで check_type.py
ファイルを開き、その内容を以下のように変更します。
from pathlib import Path
directory_path = Path("my_directory")
file_path = Path("my_file.txt")
nonexistent_path = Path("nonexistent_directory")
if directory_path.is_dir():
print(f"{directory_path} is a directory")
else:
print(f"{directory_path} is not a directory")
if file_path.is_dir():
print(f"{file_path} is a directory")
else:
print(f"{file_path} is not a directory")
if nonexistent_path.is_dir():
print(f"{nonexistent_path} is a directory")
else:
print(f"{nonexistent_path} is not a directory")
このスクリプトでは、my_directory
、my_file.txt
、nonexistent_directory
の Path
オブジェクトを作成しています。そして、is_dir()
メソッドを使って各パスがディレクトリかどうかを確認しています。
check_type.py
ファイルを保存します。
次に、ターミナルからスクリプトを実行します。
python check_type.py
以下の出力が表示されるはずです。
my_directory is a directory
my_file.txt is not a directory
nonexistent_directory is not a directory
ご覧の通り、出力は前のステップで os.path.isdir()
を使ったときと同じです。pathlib.Path.is_dir()
メソッドは、パスがディレクトリかどうかを確認するための、オブジェクト指向の代替手段を提供しています。
pathlib
を使うと、特に複雑なファイルシステム操作を扱う場合に、コードが読みやすく、保守しやすくなります。