pathlibの機能について
ファイル名の取得 .name
from pathlib import Path # 以降、省略
target = "/path/to/filename.txt" # 以降、省略
p = Path(target) # 以降、省略
print(p.name) # filename.txt
ファイル名の拡張子を取得 .suffix
print(p.suffix) # .txt
ファイル名の拡張子以外を取得 .stem
print(p.stem) # filename
親ディレクトリを取得 .parent
print(p.parent) # /path/to
存在チェック .exists()
print(d.exists()) # True or False
ファイル(ディレクトリ)かどうか .is_file() .is_dir()
print(d.is_file()) # True or False
print(d.is_dir()) # True or False
パスの連結 .joinpath()
print(d.joinpath(f)) # /usr/bin/awk
# スラッシュ演算子でも可能
print(d / f) # /usr/bin/awk
# 引数は文字列でも可能
print(d.joinpath("awk")) # /usr/bin/awk
# 余分なパスの区切り文字は吸収される
dir = "/usr/bin/"
file = "/awk"
# /usr/bin//awkとはならない
print(d.joinpath(f)) # /usr/bin/awk
解決 .resolve()
# /usr/bin/awk は /usr/bin/gawk へのシンボリックリンク
# $ type gawk
# gawk is /usr/bin/gawk
# 実体の取得
df = d.joinpath(f)
print(df.resolve()) # /usr/bin/gawk
# 相対パスから絶対パスへ
refp = (Path.home() / Path(r"../../")).joinpath("usr/bin/awk")
print(refp.resolve()) # /usr/bin/gawk
その他の操作
主にパス名に関するものを紹介しましたが、ファイルに対する操作を行うものもpathlibにはあります。以下は例ですが、詳しい使い方が気になる方は他の記事を参考にしてみてください。
- ファイルを開く
.open()
- ファイルを文字列として読み込む
.read_text()
- ファイルに書き込む
.write_text()
- ファイルの作成
.touch()
- ディレクトリの作成
.mkdir()
- 名前の変更
.rename()
コメント