PathlibモジュールのPathクラスが提供するis_dir/is_fileメソッドを使って、特定のパスがディレクトリ/ファイルを指しているかどうかを確認する方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
from pathlib import Path
# テスト用にディレクトリとファイルを作成
d = Path('mydir')
d.mkdir(exist_ok=True)
f = Path('myfile.txt')
f.touch()
if d.is_dir():
print(f'{d} is a directory')
else:
print(f'{d} is not a directory')
# 出力結果:
#mydir is a directory
if f.is_file():
print(f'{f} is a file')
else:
print(f'{f} is not a file')
# 出力結果:
#myfile.txt is a file
for entry in Path('.').iterdir():
if entry.is_dir():
print(f'{entry} is a directory')
elif entry.is_file():
print(f'{entry} is a file')
else:
print(f'{entry} is not a directory nor file')
# 出力結果:
#test.py is a file
#myfile.txt is a file
#mydir is a directory
pathlibモジュールのPathクラスにはis_dirインスタンスメソッドとis_fileインスタンスメソッドがある。これらを使うことでPathクラスのインスタンスがディレクトリを参照しているのか、ファイルを参照しているのかを調べられる。is_dir/is_fileインスタンスメソッドはどちらも引数を持たない。
以下に簡単な例を示す。
from pathlib import Path
# テスト用にディレクトリとファイルを作成
d = Path('mydir')
d.mkdir(exist_ok=True)
f = Path('myfile.txt')
f.touch()
# パスがディレクトリかどうかを調べる
if d.is_dir():
print(f'{d} is a directory')
else:
print(f'{d} is not a directory')
# 出力結果:
# mydir is a directory
最初に行っているのは、Pathクラスのmkdirメソッドとtouchメソッドを使ったディレクトリ/ファイルの作成だ。これらについては「ディレクトリを作成/削除するには:pathlibモジュール編」と「ファイルを作成/削除するには」を参照のこと。
is_dirメソッドはパスがディレクトリを参照しているときにはTrueを、そうでなければFalseを返す。上のコードでは、ディレクトリの作成に使用したPathオブジェクトに対してis_dirメソッドを呼び出しているのでTrueが返される。
is_fileメソッドも同様だ。パスがファイルを参照しているときにはTrueを、そうでなければFalseを返す。以下のコード例でもファイル作成に使用したPathオブジェクトに対してis_fileメソッドを呼び出しているので、上と同様にTrueが返される。
Copyright© Digital Advantage Corp. All Rights Reserved.