パス操作したい(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)
ディレクトリを必ず作成したい場合は、parents
とexist_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
オブジェクトとして取得できます。