パス操作したい(pathlib

1from pathlib import Path

パス操作をするための標準モジュールです。 Python3で新しく追加されました(はず)。 pathlib.Pathオブジェクトを使うことで、 os.pathモジュールと同じことが、 よりオブジェクトっぽく操作できます。

ファイルを開きたい

1p = Path("ファイル名")
2with p.open("r") as f:
3    # ファイル操作

Path.openメソッドでファイルを操作できます。 with ... as構文と合わせて、これまでのopen関数と同じことができます。

1# これまでの開き方
2p = Path("ファイル名")
3with open(p, "r") as f:
4    # ファイル操作

ファイル名のリストを取得したい

1p = Path("ディレクトリ名")
2fnames = sorted(p.glob("*.csv"))

ディレクトリ内にあるファイルの拡張子などを指定して、ファイル名のリストを取得できます。 Path.glob(パターン)だとジェネレーターが返ってくるので、 sortedして、ファイル名の順番に並べたリスト型に変換しています。

ディレクトリを作成したい

1p = Path(write_to)
2p.mkdir()

mkdirでディレクトリを作成できます。 すでにディレクトリが存在している場合はFileExistsErrorとなります。 上書きを防止したい場合は、try ... except:でこのエラーをキャッチすればOKです。

1p.mkdir(parents=True, exist_ok=True)

ディレクトリを必ず作成したい場合は、parentsexist_okオプションを使うとよいです。

パスを連結したい

1fname = Path("../data", "data.csv")
2
3dname = Path("../data/")
4fname = data_dir / "data.csv"

複数の引数を指定すると、それらを連結したPathオブジェクトが生成できます。 Pathオブジェクトは/を使って連結できます。 Pathオブジェクトはファイルが存在しなくても作成できます。

パスを取得したい

1# ホームディレクトリ
2Path.home()
3
4# カレントディレクトリ
5Path.cwd()

ホームディレクトリとカレントディレクトリを取得するPathのクラスメソッドがあります。 Path.home()Path.cwd()でそれぞれのディレクトリ名をPathオブジェクトとして取得できます。

リファレンス