【Python】PythonのPathlibの使い方
前提
Python: 3.12
基本
from pathlib import Path
# カレントディレクトリからの相対パス
file_path = Path("my_folder/my_file.txt")
# ファイルが存在するか確認
if file_path.exists():
print("ファイルは存在します")
# ファイルの内容を読み込む
content = file_path.read_text()
print(content)
注意
Pathlibは、Python 3.4以降で標準ライブラリとして提供されている。
バージョンが古くてPathlibが使用できない場合は、 os.path を使用する。
os.path の使い方については以下で説明している。
1. 属性へのアクセス
.name
ファイルまたはディレクトリの名前を文字列として返す。
.stem
ファイル名の拡張子を除いた部分を返す。
.suffix
ファイル名の拡張子(ドットを含む)を文字列として返す。
.parent
親ディレクトリの Path オブジェクトを返す。
.parents
全ての親ディレクトリの Path オブジェクトを、ルートディレクトリから近い順に含むイテラブルを返す。
.parts
パスの各部分を文字列として含むタプルを返す。
2. パスの結合
/
Path オブジェクトと文字列、または2つの Path オブジェクトをスラッシュで結合し、新しい Path オブジェクトを作成する。
import pathlib
p1 = pathlib.Path('aaa')
print(p1 / 'bbb')
p2 = pathlib.Path('ccc')
print(p1 / p2)
実行結果
aaa/bbb
aaa/ccc
3. ファイル・ディレクトリの操作
.exists()
ファイルまたはディレクトリが存在する場合は True、そうでない場合は False を返す。
.is_dir()
ディレクトリの場合は True、そうでない場合は False を返す。
.is_file()
ファイルの場合は True、そうでない場合は False を返す。
.mkdir(exist_ok=False)
ディレクトリを作成する。
exist_ok=True を指定すると、ディレクトリが既に存在する場合でもエラーにならない。
.rename(target)
ファイルまたはディレクトリの名前を変更する。
.unlink(missing_ok=False)
ファイルを削除する。
missing_ok=True を指定すると、ファイルが存在しない場合でもエラーにならない。
.rmdir()
空のディレクトリを削除する。
.touch(exist_ok=True)
空のファイルを新規作成、または既存ファイルのタイムスタンプを更新する。
4. ファイルの読み書き
.open(mode='r', encoding=None)
ファイルオブジェクトを返し、ファイルの読み書きを行うことができる。
.read_bytes()
ファイルの内容をバイト列として読み込む。
.read_text(encoding=None)
ファイルの内容を指定されたエンコーディング(デフォルトはプラットフォーム依存)でテキストとして読み込む。
.write_bytes(data)
バイト列をファイルに書き込む。
.write_text(data, encoding=None)
テキストを指定されたエンコーディングでファイルに書き込む。
5. その他
.absolute()
絶対パスを表す新しい Path オブジェクトを返す。
.resolve(strict=False)
シンボリックリンクなどを解決した、正規化された絶対パスを返す。
.glob(pattern)
指定されたパターンに一致するファイルやディレクトリを Path オブジェクトとして返すイテレータを返す。
.rglob(pattern)
.glob() と似ていますが、サブディレクトリも再帰的に検索する。
.iterdir()
ディレクトリ内のファイルやディレクトリを Path オブジェクトとして返すイテレータを返す。
関連記事
-
【Python】Pythonのos.pathの使い方前提 Python: 3.12 基本 import os.path file_path = os.path.join("data", "myfile.txt") if os.path.exists(file_path): print("ファイルは存在します") else: print("ファイルは存在しません")
-
【Python】Pythonのargparseの使い方前提 Python: 3.12 参考 argparse — Parser for command-line options, arguments and sub-commands — Python 3.12.3 ドキュメント Pythonでコマンドライン引数を扱うための標準モジュール argparseは、ユーザーフレン
-
【Python】正規表現 reモジュールの使い方前提 Python: 3.12 参考 re — Regular expression operations — Python 3.12.3 ドキュメント 基本 import re m = re.search('a.c', 'abcdef') m.group(0) よく使う特殊文字 . 任意の一文字にマッチ a.c は “abc”, “a1c” などにマッチ * 直前の文字の0回以上の
-
【Python】Pythonでファイルの読み書きをする前提 Python: 3.12 基本 with open(file_name, 'w', encoding='utf-8') as f: f.write('Sample') 参考 7.2. ファイルを読み書きする — 7. 入力と出力 — Python 3.12.3 ドキュメント モードの指定 ‘r’ 読み込み用に開く (デフォルト) ‘w’ 書き込み
-
【Python】文字列の基本【定義・結合】前提 Python: 3.12 参考 テキストシーケンス型 — str — 組み込み型 — Python 3.12.3 ドキュメント 定義 文字列を定義するには以下の記述方法がある。 シングルクォート' ダブルクォ