pathlib, f-stringを使ってスマートにパスを生成[Python]

7月 26, 2020

Python3.6から使えるようになったf-stringを使って,スマートにパスを生成しよう.

かっこ悪いパスの生成

from datetime import datetime
now = datetime.now().strftime("%Y%m%d%H%M%S")
dst = "/root/output/" + now + "_result/hoge.txt"
print(dst)
>> /root/output/20190910091617_result/hoge.txt

変数nowの周囲に+や余計な括弧"が混入しているため,生成されるパス名が把握しづらい.

スマートなパスの生成

from datetime import datetime
now = datetime.now().strftime("%Y%m%d%H%M%S")
dst = f"/root/output/{now}_result/hoge.txt"
print(dst)
>> /root/output/20190910091749_result/hoge.txt

f-stringを使って文字列内に変数を埋め込んでパスを生成.

パスが一続きの文字列として記述されているため,生成されるパス名が把握しやすい.

さらにスマートなパスの生成

from pathlib import Path
from datetime import datetime
now = datetime.now().strftime("%Y%m%d%H%M%S")
outdir = f"/root/output/{now}_result"
fname = "hoge.txt"
dst = Path(outdir) / fname
print(dst)
>> /root/output/20190910093057_result/hoge.txt

Pathを使って,出力先フォルダPath(outdir)と出力ファイル名fnameを連結した.

パス生成の際,出力先フォルダと出力ファイル名の間に/があるため,フォルダ名とファイル名の区別がつき,わかりやすいと思う.

Python

Posted by vastee