ディレクトリとパス
コンピュータのファイルシステムは、木構造(ツリー構造)で表現されます。ディレクトリ(フォルダ)がノード、ファイルが葉にあたります。
python
# パスの例# Linux/Mac: /home/user/documents/sample.txt# Windows: C:\Users\user\Documents\sample.txtpathlibモジュール
Python 3.4以降で標準ライブラリとして利用できる pathlib は、パスをオブジェクトとして扱えるため使いやすいです。
python
from pathlib import Path# カレントディレクトリcwd = Path.cwd()print(cwd) # 例: /home/user# ホームディレクトリhome = Path.home()print(home) # 例: /home/userパスの作成と操作
python
from pathlib import Pathp = Path("/home/user/documents")# パスの結合(/ 演算子で可能)file_path = p / "sample.txt"print(file_path) # /home/user/documents/sample.txt# パスの各部分へアクセスprint(file_path.name) # sample.txt(ファイル名)print(file_path.stem) # sample(拡張子なし)print(file_path.suffix) # .txt(拡張子)print(file_path.parent) # /home/user/documents(親ディレクトリ)ファイルの存在確認
python
from pathlib import Pathp = Path("sample.txt")p.exists() # ファイルまたはディレクトリが存在するかp.is_file() # ファイルかどうかp.is_dir() # ディレクトリかどうかディレクトリの内容一覧
python
from pathlib import Pathp = Path(".") # カレントディレクトリ# 全ファイル・ディレクトリを列挙for item in p.iterdir(): print(item)# 特定のパターンに一致するファイルを列挙for py_file in p.glob("*.py"): print(py_file)# サブディレクトリも含めて検索for py_file in p.rglob("*.py"): print(py_file)ディレクトリの作成と削除
python
from pathlib import Path# ディレクトリの作成Path("new_dir").mkdir()Path("a/b/c").mkdir(parents=True) # 中間ディレクトリも作成# ファイルの削除Path("sample.txt").unlink() # ファイルを削除# ディレクトリの削除Path("empty_dir").rmdir() # 空のディレクトリのみ削除可能pathlibでのファイル入出力
python
from pathlib import Pathp = Path("sample.txt")# 書き込みp.write_text("Hello, Python!日本語も使えます。", encoding="utf-8")# 読み込みcontent = p.read_text(encoding="utf-8")print(content)# バイナリp_bin = Path("data.bin")p_bin.write_bytes(b"