====== Pathモジュールによるファイル操作 ======
[[:python|一つ上へ]]
ここでは、Pathモジュールを使ったファイル、フォルダの操作について記載する。
===== ファイルの検索 =====
==== フォルダの確認 ====
Pathモジュールのexists()メソッドを使用する。
from pathlib import Path
dir = Path('C:/Users/CGK/Documents/IT/Python/test/images')
dir.exists()
==== ディレクトリ内にある特定のファイルを探す ====
ディレクトリの中にあるファイル名パターンが^^**"file-*.txt"^^**であるファイルを探す場合、
directory = Path("/path/to/directory")
pattern = "file-*.txt"
files = [path for path in directory.glob(pattern)] # パターンに該当したファイルパスのリスト
加えて、ファイルの更新日時やサイズなどを取得するには、**stat()**メソッドを使用する。
属性を指定することで、それぞれの値を取得できる。
^属性^説明^
|st_mtime|更新日時|
|st_size|ファイルサイズ|
|name|ファイル名を取得|
|suffix|拡張子を取得|
|stem|拡張子を除いたファイル名部分|
|parent|親ディレクトリ|
===== ファイル作成 =====
==== フォルダを作成する ====
^オプション^説明およびクエリ^
|parents |True => 親ディレクトリがなければ作成 \\ False => 親ディレクトリがなければエラー |
|exist_ok|True => ディレクトリが既にある場合でも処理を続行\\ False => ディレクトリが既にある場合はFileExistExceptionとなる。|
例えば、**C:\Users\User\Documents**の中にtestというフォルダを作成する場合は以下のように記載する。
from pathlib import Path
dir = Path('C:/Users/User/Documents/test')
dir.mkdir(parents=True, exist_ok=True)
===== ファイルの移動 =====
ファイルを移動するにはshutilのmove()メソッドを使用する。
from pathlib import Path
import shutil
# 移動元のパス
src = Path("old_file.txt")
# 移動先のパス
dst = Path("new_directory/new_file.txt")
shutil.move(src, dst)